Transcript CHAPTER 1
Lecture Set 3E Introduction Basic Software Development Issues 1. 2. Notes on Software Development Intro to Software Development Tools 7/18/2015 2:05 AM Objectives Explain the software development life cycle Describe selected tools used to help design software systems Develop some ability to use UML Activity Diagrams in mapping out the behavior of a software system 7/18/2015 2:05 AM Introduction to Software Development The software development life cycle consists of a sequence of well-defined steps Problem identification System design System implementation System documentation System testing System deployment Post-implementation audit Missing from this “picture” are the “feedback” loops (What does this mean?) 7/18/2015 2:05 AM Software Design Methodologies and Tools Software systems should be designed before they are implemented As software systems become more complex, the design process becomes increasingly important Several methodologies exist to design software systems The choice of methodology is often subjective Design tools apply some type of model to describe the software system 7/18/2015 2:05 AM System Analysis Methodologies Pseudocode uses English-like statements to depict an application’s actions Top-down design is used to subdivide general tasks into more specific tasks Flowcharting uses graphical symbols to depict an application’s actions The Unified Modeling Language (UML) supplies several graphical templates to model a system 7/18/2015 2:05 AM Pseudocode Pseudocode uses English-like statements to describe a particular task Pseudocode is not exact Different developers may write pseudocode differently Pseudocode characteristics The words “start” and “stop” denote the beginning and end of a process The word “if” indicates a decision Decisions can be nested Pseudocode used mainly for small algorithms design – sorts, searches etc 7/18/2015 2:05 AM Top-Down (Hierarchical) Design Steps Define general tasks first Decompose general tasks into more specific tasks Continue decomposing sub-tasks, as needed Hierarchical Input Process Output (HIPO) charts are used to visualize the topdown design process 7/18/2015 2:05 AM HIPO chart for an ATM withdrawal 7/18/2015 2:05 AM Expanded HIPO chart 7/18/2015 2:05 AM Flowcharting A flowchart consists of graphical symbols that depict the processing in an application or part of an application – you’ve seen these before Each graphical symbol denotes a specific type of operation Flowcharting also most suitable for small algorithms design – not for modeling more complex systems Even this ATM model is not quite accurate 7/18/2015 2:05 AM Generic flowchart 7/18/2015 2:05 AM ATM withdrawal flowchart 7/18/2015 2:05 AM The Unified Modeling Language (UML) The Unified Modeling Language (UML) is used to model complex software systems in a visual way It's one of the premier design methodologies in use today The UML consists of several diagrams to model specific parts of a system Most important because it facilitates modeling of data and processes together 7/18/2015 2:05 AM Common UML Diagrams Class diagrams model the conceptual and physical aspects of a system Use case diagrams model the actors (users) of a system Activity diagrams show the actions performed by the system and the order in which those actions are performed UML activity diagrams are similar to flowcharts 7/18/2015 2:05 AM UML Class Diagrams UML class diagrams are made up of three sections The top section contains the name of a class The middle section contains the attributes of a class (data) The operations (class methods) appear in the bottom section The data passed to an operation appears in parentheses 7/18/2015 2:05 AM UML Class Diagram 7/18/2015 2:05 AM UML Use Case Diagrams Use case diagrams model the actors (users) of the system A rectangular box defines the boundaries of the system Stick figures define the actors Lines connect the actors with the system's elements We will not get too wrapped up in UML formalisms but we will adhere to the spirit of UML Activity Diagrams Class Diagrams 7/18/2015 2:05 AM UML Use Case Diagram 7/18/2015 2:05 AM UML Activity Diagrams UML activity diagrams resemble a flowchart A solid black circle at the top of the diagram represents the activity’s initial state Arrows connect activities together A horizontal bar represents a decision In UML terms, this is called a fork transition A bordered black circle represents the activity's ending state 7/18/2015 2:05 AM UML Activity Diagram 7/18/2015 2:05 AM “Relaxed” Activity diagram Activity diagrams hold the key to our projects. You will need to use them in understanding the behavior of the systems you will build ATM project Game project Transaction Processing project I will use a relaxed version of an activity diagram (a behavior diagram) in class 7/18/2015 2:05 AM MVC Modeling – Rudiments of MVC The MVC design rubric defines three kinds of software components and the interactions between them. Controller – sends commands to associated view to change the view's presentation of the model It can also send commands to the model to update the model's state These commands are transmitted via function calls in C#. Model - notifies associated views and controllers of a change in its state. This allows the views to produce updated output, and the controllers to change the available set of commands. View - requests from model the information needed to generate an output representation to the user. 7/18/2015 2:05 AM