Software Design – PAA006 (Programvarudesign)

                            Ulf Cederling

                            Ulf.Cederling@msi.vxu.se

    

Course Goals

•  Give an introduction to the software development process

•      Give knowledge and create an understanding for the basic activities and artefacts developed through the software development process

•      Give knowledge of object-oriented modelling, especially object oriented design

•      Give knowledge of a method for the development of object-oriented systems

•      Give experience of developing a minor system

Course Contents

•   Introduction to the system development process

•   Requirements engineering

•  Time-, size-, resource- and complexity estimations

•  Planning your work

•   Basic concepts in object-oriented modelling

•   Use cases

•   The analysis phase: Conceptual modelling and system behaviour

•       The design phase: From analysis to design, describe use cases, collaboration diagrams, class diagrams and design patterns

•   The implementation Phase: Transferring design to code

•   System testing

 

Course Literature

•      Software Engineering, 7th Edition, by Ian Sommerville, Pearson Education 2004

•      Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3rd Edition, by Craig Larman, Pearson Education 2005

Schedule

Week  Day            Time          Room       Activity

     13   Mε 26/3     10 – 12       3433         Lecture 1

                               13 – 15       3533         Lecture 2

            To 29/3       10 – 12       3433         Lesson 1, Grupp A

                               13 – 15       3433         Lesson 1, Grupp B

     14   Mε 2/4       08 – 10       3433         Assignment 1, Grupp A

                               10 – 12       3433         Lecture 3

            On 4/4        13 – 15       5321         Lecture 4

                               15 – 17       5321         Assignment 1, Grupp B

            To 5/4         08 – 10       3244         Lesson 2, Grupp A

                               10 – 12       3433         Lecture 5

                               13 – 15       3244         Lesson 2, Grupp B

     16   Mε 16/4     10 – 17       3533         Presentation of assignment 1

            On18/4       13 – 15       5312         Lecture 6

                               15 – 17       3244         Assignment 2, Grupp A

            To 19/4       10 – 12       5312         Lecture 7

                               13 – 15       3244         Assignment 2, Grupp B

     18   On 2/5        10 – 12       3244         Assignment 3, Grupp A

                               13 – 15       3244         Assignment 3, Grupp B

            To 3/5         10 – 17       3533         Presentation of assignment 2

     19   Mε 7/5       10 – 12       3237         Lecture 8

            Ti 8/5          10 – 12       3433         Lecture 9           

            To 10/5       10 – 17       3433         Presentation of assignment 3

     20   Mε 14/5     08 – 10       3244         Assignment 4, Grupp A

                               10 – 12       3244         Assignment 4, Grupp B

            On 16/5      10 – 12       3433         Lecture 10

     21   Mε 21/5     10 – 12       3533         Lesson 3

            On 23/5      13 – 17       3244         Presentation of assignment 4

            To 24/5       10 – 17       3433         Presentation of assignment 5

 

Lectures

•     L01 – Course Introduction and Project Planning

    Chapter 1, 4-5, 25-28 Sommerville

•     L02 – Requirements Engineering – Overview

    Chapter 6-7 Sommerville

•     L03 – Modelling Requirements

    Chapter 1-7 Larman

•     L04 – Modelling Structure

    Chapter 8-9 Larman

•     L05 – Modelling Behaviour

    Chapter 10-11, 29-30 Larman

•     L06 – Modelling Collaborations

    Chapter 15-16, 31-32 Larman

•     L07 – Assigning Responsibilities

    Chapter 17-18, 25 Larman

•     L08 – Mapping Design to Code

    Chapter 13, 19-20 Larman

•     L09 – Design Patterns

    Chapter 25-26, 35 Larman

•     L10 – Software Testing and Maintenance

    Chapter 22-23 Sommerville

Assessment

•      5 assignments

•      Examination

Assignments

•      Assignment 1: Requirements and Planning

     Deadline: April 12th, 8 am

•      Assignment 2: Analysis

     Deadline: April 30th, 8 am

•      Assignment 3: Design

     Deadline: May 8th, 8 am

•      Assignment 4: Implementation

     Deadline: May 21st, 8 am

•      Assignment 5: Testing

     Deadline: May 23th,8 am 

•      You are only allowed to fall behind with one assignment

•      For each assignment, you shall submit the previous solution together with the current

 

 

 

Introduction to the Software Development Process

Definitions

     “A software development process is a method to organize the activities related to creation, delivery, and maintenance of software systems” – C. Larman

     “We define a software development process as any description of software development that contains some of the following nine activities, organized so that together they produce tested code.” –S. L. Pfleeger

Development Process

•   Requirements Analysis and Definition

•   System Design

•   Program Design

•   Writing the programs – Implementation

•   Unit Testing

•   Integration Testing

•   System Testing

•   System Delivery

•   Maintenance

What is a Project Plan?

•   Project goal: Deliver tested product

– On Time

– On Budget

– With the right quality

– With the right functionality

•   How do we accomplish this goal?

– We break it into smaller steps

•   The steps we plan to take to accomplish our goal are our project plan

Contents of the Project Plan

•Introduction: Brief description of the objectives of the project including constraints

•Project organisation

•Risk analysis: Description of possible risks in the project

•Work breakdown: Breakdown of the project into activities and identification of milestones and deliverables

•Project schedule and responsibilities

•Monitoring and reporting mechanisms

•Quality Plan

Why Plan the Project?

•   On time

– How much time do we need for requirements engineering, analysis & design and testing?

•   On budget

– What resources do we need?

– What equipment do we need?

•   With the right quality

•   With the right functionality

 

Why Plan the Project? (Cont.)

•   To know that we can deliver on time, on budget, etc...

– To set the timeframe and budget

•   To control the progress of the project

•   If we deviate from the plan:

– Why do we deviate?

– What can we do about it?

 

Methods for Estimations

•  Experience (COCOMO)

•  Expert judgement

•  Discussion

•  Wideband Delphi

Gantt Schedule

•     Developed by Henry L. Gantt 1910

•     Support for planning and analysis of complex projects

•     Traditional Gantt schedules are focused on scheduling project activities, but don’t cover the other elements in the so called project triangle (i.e. time, economy and scope).

Gantt Schedule (Cont.)

•     Overview of the project

•     Work Breakdown plan

•     An overview of dependencies?

 PERT – Program Evaluation and Review Technique

•     PERT was created by the US Navy in the fifties

•     Polaris project

•     PERT is basically a method to analyze the tasks involved in completing a given project, especially the time needed to complete each task

•     The method is suitable in projects containing   uncertainty factors

 PERT

•  PERT works with three time estimations:

–Optimistic time

–Pessimistic time

–Most likely time

•  Establish a weighted average:

   (Optimistic + 4 * Most likely + Pessimistic ) / 6

•  Disadvantage: Four time estimations are necessary

 

 

Milestones

•  How many milestones should there be?

•  What are common milestones?

   Sommerville (requirements process):

–Feasibility report (Feasibility study)

–Requirements definition (Requirement analysis)

–Evaluation report (coming out from prototype development)

–…

•  What has to be fulfilled in order to have passed a milestone?

•  Milestone – or tollgate?

Risk Management

•  What is a risk/problem?

   Possible risks, Sommerville figure 5.9:

–Project

–Product

–Business

•  How likely is the risk to occur?

•  What is the impact if the risk occur?

•  Method of finding and evaluating risks

–Brainstorming

–Experience

–Checklists

Risk Management (Cont.)

•  What are our strategies to deal with the risk, should it occur?

–Avoidance strategies

–Minimisation strategies

–Contingency plans

•  Optimally: How can we plan the project so that we remove the risk?

–What is the added cost to plan the project in this way?

Quality Assurance

•  Reviews

–Documents and Code

•  Inspections

•  External and Internal Audits

•  Test specifications

•  Follow-up of project plan