SOFTWARE ENGINEERING
Design
"what" the system is supposed to do into "how" the system will do it in a particular hardware/software configuration. SE team creates, documents, and verifies.
Testing
(Computer Software Component (CSC). The components of a software product are evaluated for correctness of integration processing.
Class diagram
- Class diagram: graphical way to illustrate relationships between classes in an object-oriented system. Represented by a box. - Aggregation vs. composition: the composition instances cannot on their own- normally be created by a container constructor and destroyed by its destructor.
State Diagrams
- Every software system has a state. A state expresses at any given moment in time as the current value of variables in the software. State changes are the essence of computing. - Finite state: fixed number of states, and can move, or transition from one state to another. - Determinism: transitions from its present state to another state based on the input data.
Use Case Diagrams
- Only provides one of the required document. Use cases are written as narratives. It describes how a System Under Discussion (SUD) responds to interaction from a stakeholder in a system. 2 levels: business [black box] (describe the process the SUD implements, without specifying any technology level details) and system [white box](use cases describe how the SUD will behave in specific situations. It contains: elements, triggers, preconditions, minimal guarantees, success guarantees, actor, primary actor, supporting actor.
Video of contrast between two methods.
- Waterfall method: team spends more time designing, the process takes a long time, clients can get frustrated with the end product taking long to be created and the client's needs might change, follows a contract, good communication is important. Decision is made in the beginning, customer are not involved during the development, and feedback is given at the end of the project. - Agile/ Iterative method: time conscious, uses time efficiently, stays organized, meets with the clients every two weeks to meet their expectations and get feedback, evaluates performance every two weeks, the team is flexible with the project. Project is being evaluated as it is being developed.
Unit 3: Software Modeling
...
There are different types of class object relationships...
4 types...
Code & Unit Testing
Code:the low-level program elements of the software product are created from design documentation and debugged. Unit: the verification that the program does what it is supposed to do and nothing more.
Sequential Project Life Cycle (SPLC)
The sequential life cycle model has a work breakdown structure where the stages of work are executed in sequence, and the output of each stage becomes input to the next stage. starts when a software product is conceived and ends when the product if no longer in use. Phases: initiation, problem definition, feasibility, requirements analysis, conceptual design, design, code/unit test, testing, installation and checkout, operations and maintenance, and retirement. - Usually used by businesses, not military/government. - "waterfall" because the output of each phase feeds into the next phase, while phases are modified via feedback produced during the verification and validation processes.
Sequential vs. Iterative
The sequential life cycle model has an inherent limitation that it does not recognize the iterative or nonlinear nature of certain types of application development. Under certain conditions, the iterative life cycle may be more appropriate. For example, if requirements are not fully known, it may be appropriate to jointly discover the requirements of an application by applying the iterative life cycle model.
3.2 What is UML?
Unified Modeling Language. Intended to provide a standard way to visualize the design of a system.To provide a single standard of symbol format to create a common language. A document with the code. UML diagram types: structural (class) and behavioral (activity). It is used to plan, architect and design software applications. Help communication with different members of the development team.
Operation and Maintenance
a. Perfective: to improve the performance of the application b. Corrective: to remove software defects. c. Adaptive: to incorporate any changes in the business or related laws in the system.
supporting actor
actors that have a role in carrying out some operation of the SUD, but which do not utilize the SUD directly.
Technical Feasibility
alternatives for hardware, software, and general design approach are determined to be available, appropriate, and functional.
actor
an external person, system, or other entity that interacts with the SUD in some way.
Feasibility
analysis of risk, costs and benefits relating to economics, technology, and user organization. Types: economic, technical, organizational, analysis, conceptual.
Organizational Feasibility
both the developing and using organizations readiness for the application.
1.meta-classes
classes whose instances are other classes ex: customer with subclasses for CashCustomer
2.whole class
composed object type
Triggers
condition, action or event that starts the use case.
success guarantees
conditions that will be true upon successful completion of a use case.
Iterative Project Life Cycle
cyclic repetition of analysis and design events or a spiral approach to development. Phases: Analyze and gather requirements, design, build prototype, evaluate and refine requirements, and engineer product to ensure complete documentation development.
3.generalization class
defines a group of similar objects ex: vehicle
3.part class
defines all the components of the whole class. ex: car is a whole class, motor is a part class
Class
defines the attributes and processesl the objects are the intances of the class definition.
Conceptual Feasibility
detailed functional definition of all external elements of the application, including screens, reports, data entry messages, and forms.
Economic Feasibility
elaborates costs of special hardware, software, personnel, office space, and forth for each implementation alternative.
Verification
establishes the correction of correspondence between software product and its specification.
Validation
establishes the fitness or quality of a software product for its operational purpose.
object
is an entity from the real world whose processes and attributes are modeled in a computerized application.
Object Orientation
is based on the notion of objects which encapsulate both data and processes on that data.
Abstract data type (ADT)
is the name used in some languages for the new, user-defined data type that encapsulates definitions of object data plus legal processes for that data. The major analysis activitities focus on defining objects, classes, and processes.
message
is the unit of communication between two objects. it contains an addressee and some ID of the requested process.
Class/Objects
lowest level of logical design entity. define a set of items which share the same attributes and processes, and manage the instances of the collection.
Configuration management
management of change after an application is operational.
object oriented Design
objective is to provide modularity to software by improving reuse of existing code and maintainability by breaking code into multiple components. Is the language independent, the implementation language doesn't actually need to be object oriented, as long as the programmers maintain proper disciple. Usually overly design and become complex. Slow at executing.
supplier object
one that performs a requested process
client object
one that requests a process from a supplier.
Implementation
period of time during which a software product is integrated into its operational environment and is phased into production use. Includes the completion of data conversion, installation, and training.
Initiation
period of time during which the need for an application is identified and the problem is sufficiently defined to assemble a team to begin problem evaluation.
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)
referred to as the application development life cycle. • How the user explained it. • How the business analyst understood it • How the dev lead designed it • How the programmer wrote it • How the project manager described it • How the project was documented it • What operations installed • How the client was billed • How it was supported • What the client really needed
Analysis Feasibility
represents a time in which software product is defined and documented.
Minimal guarantees
smallest set of promises made to the stakeholders about the state of the SUD at the end of a scenario (successful or unsuccessful).
primary actor
stakeholder in the SUD that uses the final system to perform some function.
Preconditions
statements that must be true before a use case starts. These conditions are NOT checked anywhere in the use case—they are simply assumed to be true.
4. specialization class
subclass that reflects an is-a relationship, defininig a more detailed description of the generalization. ex: truck or tank
polumorphism
the ability to have the same process take different forms when associated with different objects. ex: process to perform comparison of two items to identify the larger of the two.
Retirement
the period of time in the software life cycle during which support for a software product is terminated.
Element
trigger, actors, preconditions, steps in the process, minimal guarantees, success guarantees, and quality requirements.