CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE SOFTWARE DESIGN CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE <<professor>>
SOFTWARE ARCHITECTURE IMPORTANCE Representations of software architecture are an enabler for communication between all parties (stakeholders) interested in the development of a computer-based system. The architecture highlights early design decisions that will have a profound impact on all software engineering work that follows and, as important, on the ultimate success of the system as an operational entity. Architecture “constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together” Computer Science Department
ENTERPRISE ARCHITECTURE The organizing logic for a firm’s core business processes and IT capabilities captured in a set of principles, policies and technical choices to achieve the business standardization and integration requirements of the firm’s operating model. Concerned with cross project/solution architecture and communication between different practices in architecture. Computer Science Department
Computer Science Department ARCHITECTURAL DESIGN The software must be placed into context the design should define the external entities (other systems, devices, people) that the software interacts with and the nature of the interaction A set of architectural archetypes should be identified An archetype is an abstraction (similar to a class) that represents one element of system behavior The designer specifies the structure of the system by defining and refining software components that implement each archetype Computer Science Department
Computer Science Department DATA DESIGN At the architectural level … Design of one or more databases to support the application architecture Design of methods for ‘mining’ the content of multiple databases navigate through existing databases in an attempt to extract appropriate business-level information Design of a data warehouse—a large, independent database that has access to the data that are stored in databases that serve the set of applications required by a business Computer Science Department
ENTITY RELATIONSHIP DIAGRAM Entities: Entity instance–person, place, object, event, concept (often corresponds to a row in a table) Entity Type–collection of entities (often corresponds to a table) Relationships: Relationship instance–link between entities (corresponds to primary key-foreign key equivalencies in related tables) Relationship type–category of relationship…link between entity types Attribute–property or characteristic of an entity or relationship type (often corresponds to a field in a table) Computer Science Department
Computer Science Department Relationship Types vs. Relationship Instances The relationship type is modeled as lines between entity types…the instance is between specific entity instances Relationships can have attributes These describe features pertaining to the association between the entities in the relationship Two entities can have more than one type of relationship between them (multiple relationships) Associative Entity–combination of relationship and entity Computer Science Department
Computer Science Department Degree of a relationship is the number of entity types that participate in it Unary Relationship Binary Relationship Ternary Relationship Computer Science Department
Computer Science Department One-to-One (1:1) Each entity in the relationship will have exactly one related entity One-to-Many (1:M) or Many-to-One (M:1) An entity on one side of the relationship can have many related entities, but an entity on the other side will have a maximum of one related entity Many-to-Many (M:M) Entities on both sides of the relationship can have many related entities on the other side Computer Science Department
Computer Science Department STRUCTURED DESIGN objective: to derive a program architecture that is partitioned approach: the DFD is mapped into a program architecture the PSPEC and STD are used to indicate the content of each module notation: structure chart Computer Science Department
Computer Science Department DATA FLOW DIAGRAM A data flow diagram (DFD) is a graphical representation of the "flow" of data through an information modeling its process aspects. Often they are a preliminary step used to create an overview of the system which can later be elaborated.[ A DFD shows what kinds of information will be input to and output from the system, where the data will come from and go to, and where the data will be stored. It does not show information about the timing of processes, or information about whether processes will operate in sequence or in parallel. Computer Science Department
Computer Science Department A data flow diagram (DFD) shows how data moves through an information system but does not show program logic or processing steps A set of DFDs provides a logical model that shows what the system does, not how it does it Computer Science Department
Computer Science Department DFD SYMBOLS Computer Science Department
Computer Science Department CREATING A SET OF DFD Create a graphical model of the information system based on your fact-finding results Three-step process Step 1: Draw a context diagram Step 2: Draw a diagram 0 DFD Step 3: Draw the lower-level diagrams Computer Science Department
Computer Science Department CONTEXT DIAGRAM Computer Science Department
Computer Science Department Step 2: Draw a Diagram 0 DFD If same data flows in both directions, you can use a double-headed arrow Diagram 0 is an exploded view of process 0 Parent diagram Child diagram Functional primitive Computer Science Department
Computer Science Department Step 3: Draw the Lower-Level Diagrams Balancing Ensures that the input and output data flows of the parent DFD are maintained on the child DFD Computer Science Department
UNIFIED MODELING LANGUAGE The UML is applicable to object-oriented problem solving. Anyone interested in learning UML must be familiar with the underlying tenet of object-oriented problem solving -- it all begins with the construction of a model. A model is an abstraction of the underlying problem. The domain is the actual world from which the problem comes. Models consist of objects that interact by sending each other messages. Think of an object as "alive." Objects have things they know (attributes) and things they can do (behaviors or operations). The values of an object's attributes determine its state. Classes are the "blueprints" for objects. A class wraps attributes (data) and behaviors (methods or functions) into a single distinct entity. Objects are instances of classes. Computer Science Department
Computer Science Department UML Two main types of diagrams in the UML Structural Diagram are used to describe the relationship between classes. Behavioral Diagram can be used to describe the interaction between people and the thing we refer to as a use case, or how the actors use the system. Computer Science Department
Computer Science Department OJBECTS CONCEPTS Computer Science Department
Computer Science Department
OBJECT CONCEPTS AND TERMS Computer Science Department
Computer Science Department Attributes If objects are similar to nouns, attributes are similar to adjectives that describe the characteristics of an object Some objects might have a few attributes; others might have dozens State Computer Science Department
Computer Science Department Methods A method defines specific tasks that an object can perform Just as objects are similar to nouns and attributes are similar to adjectives, methods resemble verbs that describe what and how an object does something Computer Science Department
Computer Science Department USE CASE DIAGRAM Use case diagrams describe what a system does from the standpoint of an external observer. The emphasis is on what a system does rather than how. Use case diagrams are closely connected to scenarios. A scenario is an example of what happens when someone interacts with the system. Here is a scenario for a medical clinic. Computer Science Department
USE CASE DIAGRAM EXAMPLE Computer Science Department
Computer Science Department SEQUENCE DIAGRAM Sequence diagrams are an excellent way of documenting usage scenarios and both capturing required objects early in analysis and verifying object use later in design. The diagrams show the flow of messages from one object to another, and as such correspond to the methods and events supported by a class/object. Computer Science Department
Computer Science Department SEQUENCE DIAGRAM UML sequence diagrams model the flow of logic within your system in a visual manner, enabling you both to document and validate your logic, and are commonly used for both analysis and design purposes. Sequence diagrams are the most popular UML artifact for dynamic modeling, which focuses on identifying the behavior within your system. Computer Science Department
Computer Science Department
SEQUENCE DIAGRAMS ARE TYPICALLY USED TO MODEL: Usage scenarios. A usage scenario is a description of a potential way your system is used. The logic of a usage scenario may be part of a use case, perhaps an alternate course. It may also be one entire pass through a use case, such as the logic described by the basic course of action or a portion of the basic course of action, plus one or more alternate scenarios. The logic of a usage scenario may also be a pass through the logic contained in several use cases. The logic of methods. Sequence diagrams can be used to explore the logic of a complex operation, function, or procedure. One way to think of sequence diagrams, particularly highly detailed diagrams, is as visual object model The logic of services. A service is effectively a high-level method, often one that can be invoked by a wide variety of clients. This includes web-services as well as business transactions implemented by a variety of technologies such as CICS/COBOL or CORBA-compliant object request brokers (ORBs). Computer Science Department
Computer Science Department ACTIVITY DIAGRAM An Activity Diagram resembles a horizontal flowchart that shows the actions and events as they occur. Activity diagrams show the order in which the actions take place and identify the outcomes. Diagram Purpose Activity Diagram is typically used for modeling the logic captured in a specific use case in a use case diagram. Activity diagram can also be used to model a specific Actor's workflow within the entire system. Activity diagram can also be used independent of use cases for other purposes such as to model business process of a system, to model detailed logic of business rules etc. Activity diagram shows all potential sequence flows in an activity. Computer Science Department
ACTIVITY DIAGRAM EXAMPLE Computer Science Department