220 likes | 476 Views
New Trends in Software Engineering. Dr. Mahmoud Allam Communication & Information Technology Program Director Nile University. Software Development Life Cycle (SDLC). The Waterfall Model. Software Development Life Cycle (SDLC). The Spiral Model. Iterative Development.
E N D
New Trends in Software Engineering Dr. Mahmoud Allam Communication & Information Technology Program Director Nile University
Software Development Life Cycle (SDLC) • The Waterfall Model
Iterative Development • Agile Software Development • adds a lighter, more people-centric viewpoint than traditional approaches • use feedback, rather than planning, as control mechanism Benefits • Accelerated time to market • Increased productivity • Reduced software defects • Reduced cost
Software Development Life Cycle (SDLC) • Domain Analysis • Software Element Analysis • Requirement Analysis • Specification • Software Architecture • Implementation • Testing • Deployment • Documentation • Training & support • Maintenance • Source: Wikipedia
Software Architecture • an overall view of the solution to a problem • the high-level design of modular components and how they interact • a foundation that one can build on to solve a problem (e.g., rules, policies, attributes, etc.) • an efficient method to meet a fixed set of well-defined attributes
Software Architecture • Architecture Description Languages (ADLs) • ACME (Carnegie-Mellon University) • Rapide (Stanford University) • Wright • AADL • … • Architectural Views • Functional/logic view • Code/module view • Development/structural view • Concurrency/process/thread view • Physical/deployment view • User action/feedback view • Data view
Service-Oriented Architecture • Service-Oriented Architecture (SOA) • “...a group of services, which communicate with each other.” • is a software architecture where functionality is grouped around business processes and packaged as interoperable services • features: loose coupling, published interfaces, and a standard communication model • Web-Services
Software Security • Secure Coding • most vulnerabilities stem from a relatively small number of common programming errors. • By identifying insecure coding practices and developing secure alternatives, software developers can take practical steps to reduce or eliminate vulnerabilities before deployment. • https://www.securecoding.cert.org/ • Software Security Engineering”, 2008 (Addisson Wesley - SEI Series on Software Engineering)
Nile University - CIT Master Program • Communication & Information Technology Program Tracks: • Software Engineering • Information Security • Wireless Technologies • Informatics • Signal & Image Processing • ….
Future Trends 2025(by Barry Boehm) • The increasing integration of software engineering and systems engineering • An increased emphasis on users and end value • Increasing criticality and need for dependability & security • Increasingly rapid change • Increasing SIS globalization and need for interoperability • Increasingly complex systems of systems • Increasing needs for COTS, reuse, and legacy SIS integration • Computational plenty SIS: Software Intensive Systems COTS: Commercial Of The Shelf