CEN4020-Exam1
Difference between Class and Object
A class is a general definition of some concept, the object is the implementation of that idea with a "limited" lifespan.
Software Engineering
An engineering discipline that deals with all aspects of software production
3 Scrum Stages
-An outline planning phase where you establish the general objectives and design the architecture for the project -A series of sprint cycles, where each cycle develops an increment of the system. -The project closure phase wraps up the project, completes required documentation such as system help frames and user manuals and assesses the lessons learned from the project.
4 Design Activites
-Architectural Design -Interface Design -Component Design -Database Design
5 Principles of Agile Software Development
-Customer Involvement: customers should be closely involved during the development process, should provide new system requirements and evaluate the iterations of the system. -Incremental Delivery: software is developed in increments while the customer specifies the requirements -People not Process: the skills of the development team should be recognized and exploited. Team members should develop their own ways of working -Embrace Change: expect system requirements to change and design system to accommodate change -Maintain Simplicity: eliminate complexity from the system in the software being developed and the developing process
Extreme Programing Practices
-Incremental Planning -Small releases -Simple Design -Test-first Environment -Refactoring -Pair Programming -Collective Ownership -Continuous Integration -Suitable Pace -On-site Customer
4 software product characteristics
-Maintainability -Dependability and security -Efficiency -Acceptability
3 Examples of Refactoring
-Re-organization of a class hierarchy to remove duplicate code. -Tidying up and renaming attributes and methods to make them easier to understand. -The replacement of inline code with calls to methods that have been included in a program library.
5 Labels on Waterfall Method
-Requirements Analysis and definition -System and software design -Implementation and unit testing -Integration and system testing -Operation and maintenance
4 Fundamental Activities
-Software specification -Software development -Software validation -Software evolution
8 types of software products
-Stand-alone apps -Interactive transaction-based apps -Embedded control systems -Batch processing systems -Entertainment systems -Systems for modeling and simulation -Data collection systems -System of Systems
Scrum
Focuses on managing iterative develpment rather specific technical approaches to agile software engineering
Plan driven v.s. Agile Development
Plan-driven divides the development into separate stages, iteration occurs within activities. Specification, design, implementation, and testing are interleaved. Stages bleed together.
Pair-Programming
Programmers work in pairs to develop code. This helps spread knowledge across the team and common ownership.
Refactoring
Programming team look for possible software improvements and make these improvements even where there is no immediate need for them
Non-functional Requirements Examples
Reliability, response time and storage requirements. Constraints are I/O device capability, system representations, particular IDE, programming language or development method
Class Diagram
Represent the structure of the system. The class diagram describes the attributes and operations of a class and also the constraints imposed on the system.
Non-functional Requirements
Requirements Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc. Often apply to the system as a whole rather than individual features or services
Speed, Size, Reliability, Robustness, Portability
Speed: -processed transactions/second -user/event response time -screen refresh time Size: -Mbytes -number of help frames Ease of use: -training time -number of help frames Reliability: -mean time to failure -probability of unavailability -rate of failure occurrence -availability Robustness: -time to restart after failure -percentage of events causing failure -probability of data corruption on failure Portability: -percentage of target dependent statement -number of target systems
Functional Requirements
Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations. May state what the system should not do. It is what the customer is concerned with.
Problems with Incremental Development
The Process is not visible and System structure tends to degrade as new increments are added.
Use Case Diagram
Use-cases are a scenario based technique in the UML which represent the functionality of the system from user's point of view. A set of use cases should describe all possible interactions with the system