Скачать презентацию Software Engineering Introduction Course Structure James Gain jgain cs Скачать презентацию Software Engineering Introduction Course Structure James Gain jgain cs

a7734074a5f0c850a66cb62193091421.ppt

  • Количество слайдов: 17

Software Engineering Introduction (Course Structure) James Gain (jgain@cs. uct. ac. za) http: //people. cs. Software Engineering Introduction (Course Structure) James Gain (jgain@cs. uct. ac. za) http: //people. cs. uct. ac. za/~jgain

Objectives l Course Structure: - Outline the structure for the two halves of the Objectives l Course Structure: - Outline the structure for the two halves of the course l Case Study: - Introduce the example product (a mosaic builder) used for illustration l Process: - Briefly present the agile Extreme Programming (XP) model to be used in your projects l Methods: - Briefly mention the Unified Modelling Language (UML) notation used in this course l Tools: - List the Computer Aided Software Engineering (CASE) tool to be used in your projects

Course Roadmap: 1 st Semester Introduction • Product • Process Analysis • Principles • Course Roadmap: 1 st Semester Introduction • Product • Process Analysis • Principles • Use Cases • CRC Cards • Class Diagrams • Interaction Diagrams • State Diagrams JUNE EXAMS & VAC 4 Lectures Pressman ch. 1&2 6 Lectures Pressman ch. 11&21

Course Roadmap: 2 nd Semester Extreme Programming 1 Lecture Design • Principles • Object Course Roadmap: 2 nd Semester Extreme Programming 1 Lecture Design • Principles • Object Oriented 2 Lectures Testing • Principles • Object Oriented 3 Lectures Management • Principles • Metrics • Planning 6 Lectures Course Summary 1 Lecture Pressman ch. 13&22 Pressman ch. 17, 18, 23 Pressman ch. 3 -9, 19, 24

Course Components tools methods life-cycle model case study l l Case Study: A Mosaic Course Components tools methods life-cycle model case study l l Case Study: A Mosaic Designer Life-Cycle Model: Extreme Programming (XP) Methods: Unified Modelling Language (UML) Tools: CASE Software

Case Study: Mosaics Detail from “Sea Creatures”, Naples, 1 st Century BC Detail from Case Study: Mosaics Detail from “Sea Creatures”, Naples, 1 st Century BC Detail from “The Betrayal”, Ravenna, 6 th Century AD l Mosaics are artworks made from small tiles (tesserrae), broken and lined up into patterns to form an image l One of the earliest art forms

Simulating Mosaics l Convert a photographic image into a simulated mosaic with square tiles Simulating Mosaics l Convert a photographic image into a simulated mosaic with square tiles l Not sufficient to “pixelize” image causes horizontal/vertical artefacts l Must allow tiles to follow curves but still be spaced closely l Purpose: screensavers, animations, visualisation pre- l User Interface: 1. Select image 2. Draw contours and set parameters 3. Initiate simulator Simulated Mosaic with 2000 tiles in 3 different sizes

With marked edges Initial Image Simulated Mosaic Example Final Mosaic With marked edges Initial Image Simulated Mosaic Example Final Mosaic

Mosaic Algorithm l Input: a colour image overlaid with contours l Output: a set Mosaic Algorithm l Input: a colour image overlaid with contours l Output: a set of n tiles with position, orientation, colour and size (optional) l Steps: 1. Place n tiles randomly in 2 D 2. Generate a 2 D direction field which points to the nearest contour 3. Repeat (Centroidal Voronoi Diagram) Render with a parallel projection a pyramid at the tile position, oriented according to the direction field Move each tile to the centroid of its rendered area - Until convergence 4. From a tile’s position find direction (from the direction field) and colour (from the reference image)

A Graphical Version Initial image with marked edges Direction field points to edges Tiles A Graphical Version Initial image with marked edges Direction field points to edges Tiles are initially randomly placed Final mosaic Iterations avoid edges Spaced and aligned after 20 iterations

Life-Cycle Model: XP l Extreme Programming (XP) - Developed recently (1999) - Not yet Life-Cycle Model: XP l Extreme Programming (XP) - Developed recently (1999) - Not yet proven l Lightweight - Little documentation; low admin overhead l Agile - Able to adapt quickly to changes in user requirements l Best for small scale projects with uncertain or evolving requirements l http: //www. extremeprogramming. org

XP Features l Iterative development - About a dozen iterations of 1 -3 weeks XP Features l Iterative development - About a dozen iterations of 1 -3 weeks each - Develop a complete system on each iteration l Just in time planning - Do not plan much beyond the current iteration - Can be scary for managers l Emphasis on testing - Unit tests are written before functionality l Carefully considers people issues - stand-up meetings, pair programming, no overtime

Methods: UML l The Unified Modelling Language (UML) is a graphical language for - Methods: UML l The Unified Modelling Language (UML) is a graphical language for - Specifying, visualizing, constructing, documenting - the analysis and design artifacts of Object Oriented software systems l Rules: - Defines syntactic, semantic and pragmatic rules - In English would correspond to spelling and grammar (syntax), meaning (semantics), clarity, brevity (pragmatics)

Analysis of UML l Goals: - Define an easy-to-learn but semantically rich visual modeling Analysis of UML l Goals: - Define an easy-to-learn but semantically rich visual modeling language - Unify previous OO modelling languages (Booch, OMT, and Objectory) - Incorporate industry best practices - Provide flexibility for using different life-cycles - Enable model interchange l Success? 1. 2. 3. 4. Capable of modelling large, complex systems Can specify systems in an implementation-independent manner Full UML is large and unwieldy Only a subset of the full notation is really needed

Example of UML l Use Cases: - used during analysis to capture interaction between Example of UML l Use Cases: - used during analysis to capture interaction between users and the system

Tools: CASE l Computer Aided Software Engineering (CASE): - Automated and integrated software tools Tools: CASE l Computer Aided Software Engineering (CASE): - Automated and integrated software tools that assist in Software Engineering activities - Often used in conjunction with a particular process - Enforces a notation (e. g. UML) - May also support project management (e. g. scheduling) l Benefits of CASE: - Smoother and faster than using separate generic software: drawing programs, word processors and spreadsheets - Ensures consistency between different parts of a process - Provide different views of SE information; may lead to new insights

Toolset l CVS - Concurrent Versions System for source configuration - Records the entire Toolset l CVS - Concurrent Versions System for source configuration - Records the entire change history of source files and documentation - From: http: //www. gnu. org/software/cvs. html l Cpp. Unit - Framework for writing unit tests to prove that your code works - From: http: //www. xprogramming. com/software. htm l MS Project - For specifying a project schedules and general project planning - From: MSDN Alliance l Argo. UML (or Visio) - For creating typeset and grammatically correct UML diagrams - From: Course web-site (Argo. UML) or MSDN Alliance (Visio)