COMP2110 Software Design in 2003 ● a(nother) framework for Software Engineering ● the Software Engineering ideas and concepts in comp2110 ● Organisation.

Slides:



Advertisements
Similar presentations
Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.
Advertisements

Presentation by Prabhjot Singh
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CS 501: Software Engineering Fall 2000 Lecture 2 The Software Process.
Ch 3: Unified Process CSCI 4320: Software Engineering.
Software Engineering 2003 Jyrki Nummenmaa 1 A BASIC OO SOFTWARE DEVELOPMENT PROCESS Earlier, we saw a number of different software lifecycle models.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
SWE 316: Software Design and Architecture Objectives Lecture # 01 Prologue: The Software Process SWE 316: Software Design & Architecture  To review software.
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Object-Oriented Analysis and Design
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Requirements and Design
IS6112 Application Modelling and Design Introduction.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Introduction to Software Engineering Dr. Basem Alkazemi
Object-oriented Analysis and Design
CS 501: Software Engineering
Rational Worldwide Software Symposium
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
COMP 350: Object Oriented Analysis and Design Lecture 2
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Software Life Cycle Model
Chapter 6 View Alignment Techniques and Method Customization (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Chapter 2 The process Process, Methods, and Tools
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Rational Unified Process (Part 1) CS3300 Fall 2015.
Prologue: The Software Process. Main Phases of Software Process 1. Requirements Analysis (answers “WHAT?”) Specifying what the application must do 2.
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.
Software Engineering Management Lecture 1 The Software Process.
CSC 480 Software Engineering Lecture 1 August 21, 2002.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Chapter 7 Applying UML and Patterns Craig Larman
INFO 637Lecture #101 Software Engineering Process II Review INFO 637 Glenn Booker.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Project – A Quick Tutorial Krishna Sainath Meda. PROJECT  A task assigned to a set of people or teams to be completed within a time frame  Any project.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas -A large element is use of UML as.
Dr. DEVENDRA TAYAL– THE SCOPE OF SOFTWARE ENGINEERING.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Stand Up Comedy Project/Product Management
Interacting with consumer Software Engineering. So far… What is Software Engineering? Different software process models waterfall, incremental, spiral.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Using UML, Patterns, and Java Object-Oriented Software Engineering 15. Software Life Cycle (Waterfall)
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
DE?!GN software. COMP2110 Software Design in 2004 Chris Johnson 1.Software Requirements and Software Design in a framework for Software Engineering 2.The.
$100 $200 $300 $400 $500 $100 $200 $300 $400 $500 $100 $200 $300 $400 $500 $100 $200 $300 $400 $500 $100 $200 $300 $400 $500 $100 $200 $300.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Advanced Software Engineering Dr. Cheng
Software Development - Methodologies
TK2023 Object-Oriented Software Engineering
Software Engineering Management
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Requirements and the Software Lifecycle
Introduction to Software Engineering
Rational Worldwide Software Symposium
SOFTWARE DESIGN COMP2110 Software Design COMP2510 Software Design for Software Engineers COMP6444 Software Design for eScience in 2005 lecturers: Chris.
Rational Worldwide Software Symposium
Rational Worldwide Software Symposium
Presentation transcript:

COMP2110 Software Design in 2003 ● a(nother) framework for Software Engineering ● the Software Engineering ideas and concepts in comp2110 ● Organisation of comp2110 in 2003 it's quite different from 2002

Main Phases of Software Process 1. Requirements Analysis (answers “WHAT?”) Specifying what the application must do 2. Design (answers “HOW?”) Specifying what the parts will be, and how they will fit together 3. Implementation (A.K.A. “CODING”) Writing the code 4. Testing (type of VERIFICATION) Executing the application with test data for input 5. Maintenance (REPAIR or ENHANCEMENT) Repairing defects and adding capability Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Software Process Phases: Personal Finance Example  Requirements Analysis: Text produced e.g., “ … The application shall display the balance in the user’s bank account. …”  Design: Diagrams and text e.g., “ … The design will consist of the classes CheckingAccount, SavingsAccount, …”  Implementation: Source and object code e.g., … class CheckingAccount{ double balance; … } …  Testing: Test cases and test results e.g., “… With test case: deposit $44.92 / deposit $32.00 / withdraw $ / … the balance was $ , which is correct. …”  Maintenance: Modified design, code, and text e.g., Defect repair: “Application crashes when balance is $0 and attempt is made to withdraw funds. …” e.g., Enhancement: “Allow operation with Euro currency.” Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

The Waterfall Software Process time Requirements Analysis Design Milestone(s) Phases (activities) Implementation Testing Maintenance Release product X Two phases may occur at the same time for a short period Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Why a Pure Waterfall Process is Usually Not Practical  Don’t know up front everything wanted and needed  Usually hard to visualize every detail in advance 1. We can only estimate the costs of implementing requirements (and the feasibility of the project) 1. To gain confidence in an estimate, we need to design and actually implement parts, especially the riskiest ones 2. We will probably need to modify requirements as a result  We often need to execute intermediate builds of programs 1. Stakeholders (clients, managers) need to gain confidence 2. Designers and developers need confirmation they're building what’s needed and wanted (use frequent incremental building and testing) 1. Team members not idle while other do requirements 1. Typically put people to work on several phases at once Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission. See also: in c2110 eBrick. Parnas and Clements, A Rational Design Process, How and Why to Fake It

The Spiral Process time 1 Requirements analysis Design Coding Testing 1Iteration # Product released X M I L E S T O N E S Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission. Intermediate version (prototype) X Intermediate version (2 nd prototype) X

Another view: overlapping phases of process Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

The Four “P’s” of Software Engineering People (by whom it is done) * * Symbology from Ivar Jacobson, O-O Software Engineering a Case Driven Approach Addison-Wesley 1994 Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Process (the manner in which it is done) The Four “P’s” of Software Engineering People (by whom it is done) Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Project (the doing of it) The Four “P’s” of Software Engineering People (by whom it is done) Process (the manner in which it is done) Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

The Four “P’s” of Software Engineering People (by whom it is done) Process (the manner in which it is done) Project (the doing of it) Product (the application artifacts) * Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Product (the application artifacts) Software Engineering Product – the artifacts Design model a document in UML, for example Source code program and object code Software requirements specification a document in legalistic English, and UML, for example Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission. comp2110 concerns

What's in the course? comp2110 components ● core content – methods for designing software for a given purpose – technical "design ideas" to use ● at high level ● at detailed level – specifications of requirements for software ● supporting concepts – notational methods for describing software design – notations for specification of requirements – software lifecycle framework – "quality" – what makes it a good design (or not)

What's in the course? comp2110 components (2) ● core content: methods, design ideas, specification ● supporting concepts: notations, framework, quality ● not what you might have hoped for: – not user interface design – a specialised topic ● not what you might have feared: – not rigid "methodology" or recipes for cookbook design ● develops your skills in doing design by making descriptions and by criticising existing designs

COMP2110 Organisation ● people ● lectures ● tutorials and laboratories ● textbook ● assignments ● exam ● assessment scheme

COMP2110 course organisation (1) ● people – Chris Johnson & Ian Barnes – Tamiru Jarso, Terence Tan, Michael Still ● lectures see course website for the plan – 3 in week 1 only 2 in most other weeks: total 24 ● tutorials and laboratories see course website – every week – important for practising and learning ● textbook Eric Braude, Software Design the green book

COMP2110 course organisation (2) ● assignments 1) criticise and create requirements 2) in pairs: create requirements, criticise existing design, start creating project design Pairs will make 1 presentation and submit 1 report. 3) individual: detailed design and modified requirements for project ● final exam: yes ● assessment scheme details: Friday 25 July