The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture # 2 : Process Models
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
Software Project Management
CS487 Software Engineering Omar Aldawud
CSE 470 : Software Engineering The Software Process.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
MapleLeaf, LLC SDLC Methodology. MapleLeaf, LLC, has established standard phases and processes in regards to project management methodologies for planning.
Waterfall Model H.M.Shahzad MS(CS) from COMSATS Institute of Information Technology, Lahore.
Chapter 2 – Software Processes
Software Process Models
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp Presented by: Gleyner Garden EEL6883 Software Engineering II.
Alternate Software Development Methodologies
CS 5150 Software Engineering
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
Introduction to Software Engineering Dr. Basem Alkazemi
CS 501: Software Engineering
Software Engineering General Project Management Software Requirements
CS 501: Software Engineering
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Chapter 2- Software Process Lecture 4. Software Engineering We have specified the problem domain – industrial strength software – Besides delivering the.
1 CMPT 275 Software Engineering Software life cycle.
Software Process and Models
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Engineering Management Lecture 1 The Software Process.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Software Engineering MCS-2 Lecture # 6
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
SOFTWARE ENGINEERING MCS-2 LECTURE # 4. PROTOTYPING PROCESS MODEL  A prototype is an early sample, model or release of a product built to test a concept.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Developed by Reneta Barneva, SUNY Fredonia The Process.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development.
Lecture 2 System Development Lifecycles. Building a house Definition phase Analysis phase Design phase Programming phase System Test phase Acceptance.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
1)History of water fall model. 2)Features of water fall model. 3)Phase of water fall model. 4)Brief description of phases. 5)Advantages. 6)Disadvantages.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Software Engineering CE 501 Prepared by : Jay Dave.
V-Shaped Software Development Life Cycle Model. Introduction: Variation of water fall model. Same sequence structure as water fall model. Strong emphasis.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Methodologies and Algorithms
Lecture 3 Prescriptive Process Models
CS 5150 Software Engineering
Software Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Classical Waterfall Model
Requirements and the Software Lifecycle
Introduction to Software Engineering
Chapter 2 Software Processes
Software life cycle models
Software Process Models
CS310 Software Engineering Lecturer Dr.Doaa Sami
Evolutionary Software Process Models
Presentation transcript:

The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU

OUTLINE n The System Life Cycle Model and the System Development Process. n Software Engineering and the Software Development Process n Software Development standards n ICASE Environments n ICASE Tool: Software through Pictures (StP)

The System Life Cycle Model and the System Development Process The system life cycle model is defined as the framework containing the processes, activities, and tasks involved in the development, operation, and support of a system. The word “cycle” in the above definition refers to the way a system usually evolves through several cycles of development and enhancement during its life span The concept of a development process model discussed next is an important part of the system life cycle model. It covers the activities and tasks starting from the definition of requirements to the deployment of the developed system.

The System Life Cycle Model and the System Development Process Concept Feasibility Studies Full Scale Development Production and Deployment Sys Requirements Analysis Sys. High-Level Design Sys Detailed Design Sys. Integration And Testing SW/HW Requirements Analysis SW/HW Design SW/HW Unit Testing SW/HW Integration, and Testing

The System Life Cycle Model and the System Development Process n The system concepts are established by capturing the user needs or requirements, and defining the scope of the system. This phase produces documents with titles such as “The Mission Needs Statement”, “The Operational Requirements”, or “The User Requirements Document”. n Capturing the user requirements involves the following: Concept exploration, The use of documented experiences with other systems, The use of specially developed prototypes, and Simulations.

The System Life Cycle Model and the System Development Process n the full-scale development phase consists of the following basic set of activities: The system requirements definition and analysis phase:in which a hierarchy of system requirements is produced, and then analyzed for consistency, completeness, & testability The system top-level design phase: in which the system configuration is designed in terms of hardware and software configuration items or components. These items and their interfaces are specified. Software and hardware requirements for these components are also specified

The System Life Cycle Model and the System Development Process The system detailed design and implementation phase: During this phase, each configuration item specified in the previous phase is developed and tested. The system integration and testing phase: in which the developed software and hardware items are integrated and tested. The system requirements are validated in this phase n Several documents and reviews are prepared and performed during each of the above phases (we will see later the development standards in section 2.3 in the notes).

Software Engineering and the Software Development Process The Waterfall Model n This model for software development follows the classic life cycle model which assumes a sequential development process consisting of several development phases. n The process iterates within each phase to correct problems found during reviews and verification activities. n It also iterates back from the maintenance and operation phase to the early development phases in order to correct problems found during operation or to deal with new requirements. (See Figure 2.2 in Page 2-9 in the notes)

Software Engineering and the Software Development Process Requirement Analysis Top-Level Design Detailed Design Implementation & Unit Testing Integration Testing

Software Engineering and the Software Development Process n Given a set of requirements for a software configuration item (specified in a requirements definition document), n the software development process starts with the requirements analysis and specification phase. n This is followed by a preliminary design (or high level design) phase, and then a detailed design phase. n Once the design is finalized, the coding or implementation phase begins which is followed by the testing and validation phase.

Software Engineering and the Software Development Process Disadvantages of the water Fall Model n Although the requirements and design activities influence each other as they develop, the waterfall model assumes a strictly sequential development. Iterations are only allowed within a phase n The waterfall model does not capture the realistic sequence of activities and tasks required for modern software development. n The problem comes from requiring the developer to write detailed specifications of vague, ambiguous, imprecise, or poorly understood requirements

Software Engineering and the Software Development Process n For complex real-time systems in particular, the task of writing detailed adequate, consistent, correct, and complete specifications based on vague, ambiguous, imprecise, contradicting, or incomplete user requirements is almost impossible Advantages of the model n The main advantage of the waterfall model is to facilitate the implementation of the management activities of estimating the cost and schedules of the development process. n This simple sequential development process is also easier to track and tailor to large projects.

Software Engineering and the Software Development Process Prototyping Based Models n A working version may be developed through quick analysis, design, and implementation following similar activities as specified in the waterfall model but executed in a much faster pace to come up with a quick, dirty version of the product n The broad definition of prototypes used in this includes simulation models and executable specifications. These are dynamic models developed using special modeling and simulation tools to study the dynamic behavior of the software as it reacts to external events. n These models are important to study the timing behavior by simulating the external environment, as well the state transitions which take place as the software executes its functions in reaction to external events.

Software Engineering and the Software Development Process n A development process model may require the use of a prototype for developing a clear, consistent, and complete specification. This activity is based on getting feedback from users and other software developers. n The process would then proceed in a sequential fashion following the development phases in the waterfall model as shown in Figure 2.3. n Prototyping may also be used during design and implementation. In this case dynamic simulation models are used to guide the development activities and get feedback from users and other developers on the current status of the evolving product as shown in Figure 2.4.

Software Engineering and the Software Development Process Models based on risk analysis n The term risk factor has an implied definition of risk as a measure of uncertainty in achieving the project goals such as developing a product which satisfies users needs while meeting the project deadlines. n Some of the important factors affecting the overall project risk factor are based on uncertainty in: understanding users needs, assessing the difficult technical problems which might show up during design and implementation, handling changing requirements which arise due to technological advances or changes in the user needs.

Software Engineering and the Software Development Process n In order to decrease the project risk factor, two models have been suggested in practice. n The first model is based on an incremental development approach,where the software is developed in multiple builds (or versions), each with increased functionality and capability. n In this model, following the architectural design (or high-level design) phase, the rest of the phases in the waterfall model are executed for each build. n This approach is necessary for large projects since a single build may not be practical. n The disadvantage of this model is the increased amount of testing required to confirm that existing capabilities of the software are not impaired by any new function in the new build.

Software Engineering and the Software Development Process n The second model follows the evolutionary development approach in which all phases of the life cycle are performed to produce a release. n The project plan in this case specifies the development of multiple releases. Each release incorporates the experience of earlier ones. n One major reason for such an approach is that the user requirements are incomplete to start with. n One major disadvantage of this approach is that the initial software architectural design may not be easily adaptable to bear the changes necessary for later evolutions. In this case much more time may be spent in redesigning the software architecture in subsequent releases.

Software Engineering and the Software Development Process n The incremental approach learns from the evaluation and testing of the previous build to improve the quality and functionality of the product in the subsequent builds. n With this approach, it is assumed that the user requirements are completely defined before the development of the first build can start. n The evolutionary approach, on the other hand, assumes that the user requirements are only partially specified and it evolves with the user experiences with each release.