CS205 Software Engineering_Overview Specifications: The Ariane 6 must be able to deliver both satellite hardware and crew into geostationary orbit. (Ariane.

Slides:



Advertisements
Similar presentations
Software Processes.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
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.
CS 501: Software Engineering Fall 2000 Lecture 2 The Software Process.
Lecture # 2 : Process Models
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
Unit 2. Software Lifecycle
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
CS487 Software Engineering Omar Aldawud
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
CSE 470 : Software Engineering The Software Process.
CSC 480 Software Engineering
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.
Chapter 2 – Software Processes
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
CS 5150 Software Engineering
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.
1 CS 691z/791z Topics on Software Engineering CS 691z/791z Topics on Software Engineering Software Processes Based on Chapter 4 of the book [SE-8] Ian.
CS 501: Software Engineering
Software Engineering General Project Management Software Requirements
CS 425/625 Software Engineering Software Processes
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3.
Chapter 3 Software Processes.
Lecture # 04 & 05 CS314 Introduction To Software Development Software Development Process (SDP) Instructor :Muhammad Janas khan
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa SOFTWARE LIFECYCLE MODELS These slides contain a few.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Software Engineering Management Lecture 1 The Software Process.
1 SWE Introduction to Software Engineering Lecture 4.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
An Introduction to Software Engineering
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
September 30, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
 Many models have been proposed to deal with the problems of defining activities and associating them with each other  The first model proposed was the.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 1 Introduction to Software Engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
Software Engineering Management
SOFTWARE ENGINEERING - SOFTWARE LIFECYCLE MODELS
Software Processes (a)
CS 425/625 Software Engineering Software Processes
Chapter 2 SW Process Models
Chapter 2: Software Process Models
An Overview of Software Processes
An Overview of Software Processes
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes.
Chapter 2: Software Process Models
Presentation transcript:

CS205 Software Engineering_Overview Specifications: The Ariane 6 must be able to deliver both satellite hardware and crew into geostationary orbit. (Ariane 5 can only deliver satellites) Maximize software re-use from Ariane 5. Exercise: 1. Outline a strategy for accomplishing this. 2. Outline the software, hardware and social components of a new rocket series. 3. How would these components interact?

CS205 Software EngineeringOverview From BBC News Online “Lockheed to build NASA 'Moonship'” Thursday, 31 August /nature/ stm

CS205 Software Engineering_Overview System engineering vs. software engineering System engineering includes software engineering as a component Both create socio-technical systems… …but system engineers can create/modify the hardware and social aspects In software engineering, hardware is assumed to be fixed. Systems engineering is more abstract than software engineering - not concerned so much with component details

CS205 Software Engineering_Overview System engineering vs. software engineering (0. Intuition (perceiving a problem/need/niche) Innovation (one good idea leads to another) Specification: define the software/constraints Development: design and programming Validation: Component/system testing Evolution: Adapt to changing user needs … The software engineering process Improvements to existing system Creation of new systems

CS205 Software Engineering_Overview System engineering vs. software engineering The system engineering process Requirements definition System decommissioning System design System evolution Sub-system development System installation System integration System engineering process composed of more basic activities Linear process, rather than cyclic. Q: Why? Intuition/ innovation Q: Given the Ariane 5 system, for each stage, give a detailed example. “A5 will never exceed a velocity of 500 meters per second.”

CS205 Software EngineeringOverview Programming Exercise: “Programming with Virtual Blocks” Will form the base code for the warm-up project Warm-up project will be assigned Tuesday, September 4.

CS205 Software Engineering_Overview Example emergent software system properties Volume (Memory, hard disk space; how does it scale with use (saved data)) Reliability (Depends on hardware, software, operators) Security (vulnerable to attack? Who has access?) Speed (Depends on underlying hardware components) Robustness: (Reacts well to unanticipated use; related to reliability) Q: What else? Which are desirable? Which should be minimized?

CS205 Software Engineering_Overview Emergent system properties Non-functional emergent properties General properties of the system Exist regardless of how well the system is functioning - Tolerable ranges are usually given, or assumed (speed, reliability) Functional emergent properties - Desirable property that the components are trying to realize - Only appear when the system is working well - Are usually specified explicitly - May only appear in certain situations - More specific than non-functional properties (Sorts all integer lists vs. reliability)

CS205 Software Engineering_Overview Software Process: Set of activities that produce a software product. Innovation/Intuition Specification Development Verification Evolution Processes may be embedded within processes: Specification: Feasibility study Requirements elicitation and analysis Requirements specification Requirements validation (realism, consistency and completeness) Software Process Models: Views on that process How that process is structured (linear versus iterative) Models may be embedded in models (one activity within an iterative process may be executed linearly, and vice versa)

CS205 Software Engineering_Overview Three Main Process Models: Linear Summary:One-way progress from client needs to finished product Focus:Concrete milestones, freezing phases Examples:The waterfall model (adapted from systems engineering) Pros: Cons: Iterative Summary:Bidirectional movement in the development process Focus:Ability to change, rapid delivery, user involvement Examples:Evolutionary development Incremental delivery The spiral model Pros: Cons: Component-Based Software Engineering (CBSE) Summary:Composition of reusable, standardized components Focus:Reuse, integration, interfaces Pros: Cons:

CS205 Software Engineering_Overview Linear vs. Iterative as they relate to change Linear models produce clean code, which is easier to modify later (process resistant to change, product amenable to change) Iterative models allow change during development, but produce “rotten” code (process amenable to change, product resistant to change) The “smells” of “rotten” code: No clear overall structure Little/no documentation Q: What else?

CS205 Software Engineering_Overview The waterfall method Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance Each phase produces a document – a deliverable – that triggers the start of the next phase. Q: How do these activities map to basic software engineering activities? Q: What could the deliverables be? Royce, W. W. (1970). Managing the development of large software systems: concepts and techniques. Proc. IEEE WESTCON.

CS205 Software Engineering_Overview The waterfall method Imagine you are a team leader in a production house that uses the waterfall method. To which phase would you focus most time and effort if you were developing… Q: Software to indicate whether an X-ray shows a tumor or not? Q: Software composed of commercial off-the-shelf programs? Q: A new operating system? Q: Software for a client known to change their minds often? No one right way to do things. …but for really indecisive clients… (see next slide)

Intermediate versions CS205 Software Engineering_Overview Evolutionary development Specification, development and validation are carried out in parallel. Expose the client to many versions, and incorporate their feedback. Pro: Con: Outline Description Specification Development Validation Initial version Final version Intermediate versions

CS205 Software Engineering_Overview Evolutionary development Two sub-classes: Exploratory development Start w/ components the client is sure about. Develop other components as you go. Throwaway prototyping Final product is a prototype that is used to create requirements… …then thrown away. Preamble to more structured approaches Q: Where might you use exploratory development? Q: Where might you use throwaway prototyping?

CS205 Software Engineering_Overview Incremental delivery Not as structured as waterfall method. More structured than evolutionary development. Focus on priorities: identify what functionality the client needs first. (What system functionalities supports this user functionality?) Pro: Con: Define outline requirements Assign requirements to increments Design system architecture Integrate increment Develop system increment Validate increment Validate system Final system System incomplete

CS205 Software Engineering_Overview Incremental delivery Imagine you are a team leader in a production house using incremental delivery. What would you develop first in… Q: Software to indicate whether an X-ray shows a tumor or not? Q: An online travel booking system? Q: A new operating system? Q: Real-time, physical simulation software Q: Product for an international market?