Software Life Cycle & UML - PDF

Document Details

BonnyByzantineArt1125

Uploaded by BonnyByzantineArt1125

Sudan University of Science and Technology

2012

Tags

software life cycle software engineering uml system design

Summary

This document provides an overview of the software life cycle, including analysis, design, implementation, and testing stages. It also covers important concepts in software engineering like the waterfall and incremental models, data flow diagrams, entity relationship diagrams, and unified modeling language (UML), including use case and class diagrams.

Full Transcript

# Requirement Analysis Stage - The software life cycle begins with requirements analysis. - The goal is to specify what services the proposed system will provide, to identify any conditions (time constraints, security, and so on) on those services. - Define how the outside world will interact wit...

# Requirement Analysis Stage - The software life cycle begins with requirements analysis. - The goal is to specify what services the proposed system will provide, to identify any conditions (time constraints, security, and so on) on those services. - Define how the outside world will interact with the system. # Figure 7.1 The Software Life Cycle Once software is developed, it enters a cycle of being used and maintained (see figure below) - Development - Use - Maintenance # Figure 7.2 The development phase of the software life cycle - Requirements analysis - Design - Implementation - Testing # Design Stage - Involves creating a plan for the construction of the proposed system. # Implementation Stage - Involves the actual writing of programs, creation of data files, and development of databases. - The software analyst is involved with the entire development process, emphasizing the requirements analysis and design steps. - The programmer is involved with the implementation step, writing programs that implement the design produced by a software analyst. # Testing Stage - **Validation testing** - Confirms that the system meets specifications that the user has predefined, such as producing yearly or monthly reports for the financial situation of a corporation. - **Defect testing** - Find bugs in the code, whether it produces correct results or not. For example, if the code calculates the average salary of the employees. # Software Engineering Methodologies - **Waterfall Model:** Is a model based on the fact the development process was allowed to flow in only one direction. - **Incremental Model:** is a model in which the desired software system is constructed in increments, with the first being a simplified version of the final product with limited functionality. # Tools of the Trade - **Data Flow Diagram:** Is a diagram that shows the way information flows through a process or system. It includes data inputs, processes, data stores, and the various subprocesses. - **Entity-Relationship Diagram:** is a graphical representation showing relationships among people, objects, places, concepts or events within (IT) system. - **Data Dictionary:** is a collection of names, definitions, and attributes about data elements that are being used or captured in a database. # Figure 7.8 A simple dataflow diagram The diagram shows how a *Patient* interacts with a *Hospital*. - *Input* - The *Patient* pays *bills* and *payments*. - *Process Payments* and *Process Bills* have arrows pointing to *Hospital Files* with labels *Patient Records* and *Updated Records*. - *Output* - *Patient Records* go from *Hospital Files* to both *Process Payments* and *Process Bills*. # Entity Relationship Diagram | Relationship | | |---|---| | One to one | Car Company to Car Model | | One to Many | Doctor to Patient | | Many to Many | Student to Subject | # Data Dictionary ## TABLE: Students | COLUMN NAME | TYPE/LENGTH | CONSTRAINTS PK | INDEXED? | |---|---|---|---| | StudentID | CHAR(9) | Yes | Yes | | StudentLastName | CHAR(30) | | Yes | | StudentFirstName | CHAR(20) | | Yes | | Address | CHAR(50) | | Yes | | City | CHAR(30) | | Yes | | State | CHAR(2) | | Yes | | Zip | CHAR(9) | | Yes | ## TABLE: Instructors | COLUMN NAME | TYPE/LENGTH | CONSTRAINTS PK | INDEXED? | |---|---|---|---| | InstructorID | CHAR(6) | Yes | Yes | | InstructorLastName | CHAR(30) | | Yes | | InstructorFirstName | CHAR(20) | | Yes | # Unified Modeling Language (UML) UML is a modeling language in Software engineering developed as a modern collection of tools to provide a standard way to visualize the design of a system. ## Two tools - Use Case Diagram - Class Diagram # Use Case Diagram One of the UML tools developed to capture the image of the proposed system from the user's point of view. - Depicts the proposed system as a large **rectangle** in which: - **Use Cases:** are interactions between the system and its users represented as ovals. - **Actors:** are users of the system represented as **stick figures**. # Figure 7.9 A simple use case diagram - The diagram shows the *Hospital Records System* as a rectangle. - **Actors** include: - *Physician* - *Administrator* - *Nurse* - *Laboratory Technician* - **Use Cases** include: - *Retrieve Medical Record* - *Update Medical Record* - *Retrieve Laboratory Results* - *Update Laboratory Results* - *Retrieve Financial Records* - *Update Financial Records* # Class Diagram - Is a UML type of static structure diagram that describes the structure of a system by showing the system's classes and how they are related. - In a hospital system, physician, nurse, administrator, lab technician are examples of classes. # Figure 7.10 A simple class diagram - The diagram shows relationships between three classes: *Physician*, *Patient*, and *Room*. - *Physician* cares for *Patient* - *Patient* occupies a *Room* - *Patient* hosts a *Room* # Testing - Programs and testing and verification of the programs themselves continue to be a topic of research. - Consequently, many testing methodologies have been developed to improve revealing errors odds in software using limited number of tests. # Documentation - **User Documentation** - Printed book for all customers - On-line help modules - **System Documentation** - Source code - Design documents - **Technical Documentation** - For installing, customizing, updating, etc. # Software Ownership - **Copyright** - Allows a product to be released while retaining ownership of intellectual property ( الملكية الفكرية ). - **Software License** - A legal agreement that grants the user certain permissions without transferring ownership (( براءة الإختراع Patents). - **Patents** - Allows the product developers to release that product and protect ownership rights. - The developer of a product will assert ownership by including a copyright statement.

Use Quizgecko on...
Browser
Browser