Вы находитесь на странице: 1из 3

Test 1 Study Guide

Fundamentals of good software


- Systems should be developed using a managed and understood development
process
- Dependability and performance
- Understand and manage the software specification and requirements
- Reuse software that has been developed rather than write new software

4 main software processes


- Specification
- Design and Implementation
- Validation
- Evolution

8 IEEE code of ethics

- Public Software engineers shall act consistently with the public interest
- Client and Employer Software engineers shall act in a manner that is in the
best interests of their client and employer consistent with the public interest
- Product Software engineers shall ensure that their products and related
modifications meet the highest professional standards possible
- Judgment Maintain integrity and independence in their professional judgement
- Management Managers and leaders shall subscribe to and promote an ethical
approach to the management of software development and maintenance
- Profession Advance the integrity and reputation of the profession consistent
with the public interest
- Colleagues Be fair to and supportive of colleagues
- Self Participate in lifelong learning regarding the practice of their profession
and shall promote an ethical approach to the practice of the profession

Software Design Principles Agile and Plan Driven

Agile
Planning is incremental
Easy to change the process
Plan Driven
All the process activities are planned in advance

Waterfall
Separate and distinct phases of specification and development
Plan Driven
Incremental Development
Specification, development, and validation are interleaved
May be plan-driven or agile
Easier to get customer feedback

Advantages of paired programming


- Spreads knowledge across the team
- Reduces risks to a project when team members leave Basically talking about if
one member leaves, the other member can fill in the next team member on what
they were working on
Role of scrum master
- Responsible for ensuring that the Scrum process is followed and guides the team
in the effect use of Scrum
- Responsible for interfacing with the rest of the company and not distracted
- Tracks the backlog of work to be done
- Records decisions
- Measures progress
- Communicates with customers and management outside of the team
Benefits of scrum

- Broken down into manageable and understandable chunks


- Unstable requirements do not hold up progress
- Whole team has visibility of everything and consequently team communication is
improved
- Customers see on time delivery of increments
- Trust between customers and developers is established
- Positive culture is created in which everyone expects the project to succeed

Requirement engineering
Classify as functional or non-functional requirements or constraints.
Constraints: time limit, cost, etc
- Functional Requirements what the product must do and must not do
o Satisfy the fundamental reasons of its existence
- Non functional requirements Specify the qualitative behavior of a product
-
Draw use case diagram given a scenario
Use all components of use case diagram.
Association
Include
Extend
Generalization
Draw class diagram given a scenario
Use all components
Class associations
Multiplicity
Generalization
Aggragations
Composition
E.g. Book & Author

Оценить