Looks like no one added any tags here yet for you.
What is a Functional requirement?
What is needed for the system to help the user complete a task
What is a nonfunctional requirement?
Other, hidden areas which contribute to system success (or Failure)
Traceablility
Concept that the various documents which support and define a project should be related to one another and be able to trace from the end point to the beginning
Issues with Traditional Method
- Issues were not detected until the verification phase, which is where most testing occurs.
- If requirements had been missed , it was a costly time intensive process to rectify issues.
- Incorporating design too early
- Shortchanging the focus on requirements gathering
- Methodology not working well for smaller projects and difficulty managing the process
What are the characteristics of the HI/I method?
- Continuous feedback loops while keeping a view of the whole project in mind. In contrast with other models where there are distinct phases that are linked but do not have iterative/incremental series of cycles
What does Holistic mean?
View of the whole project, is maintained through a strong vision of project architecture
What does Iterative mean?
Redoing something several times, increasing richness, comprehensiveness, and consistency each time
What does Incremental mean?
Creating something piece by piece and integrating the pieces into the whole a little at a time
Principles of HI/I
- Manage requirements, not tasks
- Important goals are the business goals
- Think like a businessperson
- Divide and conquer by technology, by subsystem or by requirements
- Cut the job into programs and projects
- Tie everything back to business
- Create demonstrable deliverables
What is the meaning of traceability?
- Clarity of linkage between artifacts
- Provides assurance that the software created matches what the stakeholders want
What is an Artifact?
The documents and diagrams created to support the software development process
What artifacts can have traceable links?
- Use case diagrams and Narratives
- UML sequence, class and state diagrams
- CRC sessions
How does the Agile method compare to traditional methods?
- in the plan driven model the team will deploy one increment of software at the end of the project. But in Agile, the team deploys small software changes over time.
- In sequential versus concurrent activity. In plan driven development, a process starts after successful completion of another. In Agile, we plan all the time.
What are some of the major principles of the agile manifesto that help ensure successful development?
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
- Business people and developers must work together daily throughout the project
- Working software is the primary measure of progress
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity- the art of maximizing the amount of work not done -- is essential
How is Scrum related to HI/I which we've already discussed?
It's focus is on a flexible, holistic product development strategy where a developmental team works as a unit to reach a common goal as opposed to a traditional sequential approach
What are some barriers to adoption of Agile development?
- Ability to change organizations culture
- Availability of personnel with the right skills
- General resistance to change
- Organizational cultural changes and resistance to change plus lack of talent
Traditional vs Holistic iterative/incremental methods.
- Waterfall method: Linear model. Software developed one step at a time. Once step is complete, move on to the next
- Rapid Application Development(RAD): Incorporates Users in development
- Spiral method: iterations to refine scope and reduce risk
- Staged delivery: Cutting the project into smaller pieces
What are the top three principles of the HI/I lifecycle and why?
1. Cut the job into programs and projects
1a. Instead of focusing on the entire project at one time, break it down into manageable components
2. Manage requirements, not tasks
2a. Stay focused on the what and not the how
3. Divide and conquer by technology, by subsystem or by requirements.
3a. Breaking the components into specific tasks for several groups to manage at the same time makes it easier to complete the project
Why is traceability important?
- Everyone wants to feel like they are building something that is supposed to be built
- Business people often demand to see that the team is doing the provably right thing
- Large money investments in software mean that we should be able to prove that we are working on the thing we said we would
Describe some of the tools of Traceability
- Analysis Model Traceability: Each use case translates into an operation passed and the set of messages exchanged between objects on a UML sequence diagram.
- CRC Card Session Traceability: Class-Responsibility-Collaboration- card sessions help identify needed classes and assign them their responsibilities.
- Project Management Traceability: In a HI/I project, the development team creates working, tested code in phased builds.
Describe the reasons for using UML
- Reusability: identify components that are similar which is a hallmark of object oriented, modular design.
- Readability: helps in clear documentation. UML is easily understood by developers to depict the system architecture and behavior.
What are the main parts of a UML diagram?
- Structure diagrams depict static parts
- Structural diagrams examples:
- class diagrams are used to refine the use case diagram and define a detailed design of an object-oriented solution
- Package diagram shows the dependencies between different packages in a system.
- Dynamic parts
What are some UML diagrams and tools?
- Structure diagrams
- Class diagrams
- Behavioral diagram
- State diagram
- Package diagram
- Activity diagram
What does a use case diagram do?
It identifies actors and the main interactions with the system.
What does a Class diagram do?
they define a detailed design of an object-oriented solution, depicting classes, attributes, and operations and relationships
What does a deployment diagram do?
It illustrates the runtime components of an application and are used when the system is built
What is UML?
Unified Modeling Language, a standardized modeling language consisting of an integrated set of diagrams, developed to help system and software developers for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems
What is the first rule to writing an effective use case?
Follow a straight path to achieve a use case goal
- Be as concise as possible. The use path should achieve the same goal with the same actor. Alternative paths will result in additional use cases.
What is the second rule to writing an effective use case?
Don't confuse use cases with user stories
- User stories or scenarios are different. Use cases represent formal requirements. Stories and scenarios have additional information explaining purpose, benefits, etc.
What is the third rule to writing an effective use case?
Focus on process vs system functionality
- The flow of the course of action should focus on the user's execution of a process. Capture the user's interaction with the system and not detailed system logic. leave out references that are design or architecture specific
What is the fourth rule to writing an effective use case?
Reference other use cases when appropriate
- When a use case results in an alternative path or is the use case representing the alternative path(as noted in the discussion of rule 1 ), referencing the other specific use case(s) will help save steps in your use case and help with traceability linking your artifacts
What is the Fifth rule to writing an effective use case?
Treat "if" statements with caution
- If statements can be difficult to follow, especially if resulting in detailed system logic. As noted in the other rules, create separate use cases if the use of if statements starts to increase, illustrating alternative courses of action
What is the use case name
The name of the template
What is the Primary actor in a use case template?
The person who is using the system
What is the purpose field in a use case template?
The main goal of the actor of the use case and should be the basic course of events
What is the Extensions/Alternative flow field in a use case template?
Describes what happens when there is a deviation from the main path, such as those resulting as exceptions or errors.
What are preconditions?
Requirements which must be met before a program can be executed.
What are postconditions?
Requirements that must be met after a program is executed
Describe tips for successful use case development
- Each step should show an action.
- Keep use cases to a reasonable length
- Avoid "if" statements
- Don't describe the user interface, focus on what the system is doing and not how or what is looks like
- Refrain from including rules and formulas in the use case. These may change and are better left to a business rules catalog.
Describe Best practices for successful use case development
- Use a template
- Pre-conditions and Post-conditions should be verifiable
- Use consistent writing standards
- Do not include design elements such as button names or technology references
- Use an appropriate level of detail
- Be clear when alternates and exceptions branch form the main course of events
- Don't include out of scope steps
What does a use case do?
Describes a business' work process, the functional requirements of a system, and document the design of the system.