CmpE297A-Team

advertisement
CmpE 297A – Advanced Object-Oriented Analysis & Design
Team Project #1 Specifications
The requirements analysis and design specifications part of the projects will be specified using
the Unified Modeling Language (UML) on Rational Rose or any other suitable modeling tool,
such as Visio or Together. UML is a standard for creating visual abstractions for software
systems. Software developers can choose from Nine different modeling techniques to describe
their system in the most appropriate manner. We will use just six or seven of these (use case
diagrams and use cases, CRC cards, class diagram, two behavior models).
Use your team problem statement for assignments to answer the following questions:
1. Use Abbott’s Approach to identify classes, and their attributes, operations, and
relationships (associations, aggregations, inheritance).
2. Select the right classes, attributes, and relationships by showing how to use the
elimination heuristics
3. Test all your classes by using uniformity test, more than a name test, or test, and
more than list test.
4. Document all your classes in CRC cards. You must show the responsibility and
collaborations (client and server sides) of each class.
5. Rewrite your problem statement.
6. Explain the value of OO design heuristics in performing this assignment with
examples.
The previous questions are designed to get you up to speed and to put you on the right
thinking process. It also helps you to prepare a better write up of your problem
statement.
Rose is a CASE tool developed by Rational Inc. that provides computational support for creating
UML diagrams. In each of the diagrams, the following is required:
1. (Point 1) Use Case Diagrams and Use Cases. Use one or more diagrams to describe all the
actors in your system and how they will interact with the Use Cases of your system. Provide
Flow of Events for all of your Use Cases. Use associations, aggregations, and generalization
in the use case diagram(s) and don’t forget to use multiplicities. Use case diagram(s) textual
description is a must. Use the following template to document your use cases.
1.
2.
3.
4.
5.
6.
7.
8.
Use Case Id.
Use Case Title
Actors & Corresponding Roles
Classes
Corresponding Attributes
Corresponding Interfaces
Use Case Description
Alternatives
1
2. Document all the CRC cards for all the (classes) classes in your team project (CRC stands for
Class Responsibility and Collaborations)
Class Name (Role)
Collaborations
Responsibility
Clients (Role)
Servers
3. (Point 3) Class diagram (Traditional Model). Create a Class diagram of your team
problem based on the Traditional Model – Describe your traditional model. Class
descriptions should include all attributes and methods for the class. All class
relationships (associations, aggregations, dependencies, and specializations) should
be included in the class diagram. Association’s classes, interface classes, constraints,
interfaces, tagged values and/or stereotypes, and notes must be included in the class
diagram. A full description of this class diagram should be included with the final
submission.
4. (Point 4) Use Case Diagrams and Use Cases. Update #1. A full description of each of the
use case diagrams should be included with the final submission. Use the following
template to document your use cases.
1.
2.
3.
4.
5.
6.
7.
8.
9.
Use Case Id.
Use Case Title
Actors & Corresponding Roles
Classes
Corresponding Attributes
Corresponding Interfaces
Class Classification: EBTs, BOs, IOs
Use Case Description
Alternatives
5. (Point 5) Create or/and update all the CRC cards for all the (classes) classes in your team
project (CRC stands for Class Responsibility and Collaborations). A full description of the
CRC cards should be included with the final submission.
Class Name (Role)
Collaborations
Responsibility
Clients (Role)
2
Servers
6. (Point 6) Class diagram (Stability Model). Create a new Class diagram of your
team problem based on the EBTs, BOs, and IOs – Describe your stability model.
Class descriptions should include all attributes and methods for the class. All class
relationships (associations, aggregations, dependencies, and specializations) should
be included in the class diagram. association classes, interface classes, constraints,
interfaces, tagged values and/or stereotypes, and notes must be included in the class
diagram. A full description of this class diagram should be included with the final
submission.
7. (Point 7) Behavior Models. Create two or more of the following behavior models
with stability in mind:

Sequence diagrams. Sequence diagrams will be used to "realize" Use Cases. All Use
cases should be described through sequence diagrams. The sequence diagrams can
describe the same Use Cases that a flow of events was created for in the Use Case portion
of the assignment. A full description of each of the sequence diagrams should be
included with the final submission.

State Transition diagrams (STD). STD shows a sequence of state an object can assume
during its lifetime, together with the stimuli that cause changes of states. STD will be
used to generate the behavior of classes. The entire application and two or more classes
should be described through an STDs. A full description of each of the STDs should be
included with the final submission.

Activity Diagram. Activity diagram is similar to procedural flow charts except that all
activities are uniquely associated with objects. Activity diagrams support the description
of parallel activities. Activity diagrams: (a) Describes how activities are coordinated; (b)
Is particularly useful when you know that an operation has to achieve a number of
different things, and you want to model what the essential dependencies between them
are, before you decide in what order to do them; (c) Records the dependencies between
activities, such as which things can happen in parallel and what must be finished before
something else can start; and (4) Represents the workflow of the process. Activities,
transitions, decision diamond, constraints, synchronization and splitting bars, boundaries,
and start & stop markers must be included in the class diagram. A full description of
the activity diagrams should be included with the final submission.

Object-Interaction Diagram (OIDs) or Collaboration Diagram. OIDs or
Collaboration diagrams show a set of interactions between selected objects in a specific,
limited situation or context, focusing on the relations between the objects and their
topography. A full description of each of the OIDs or collaboration diagram should be
included with the final submission.
8. (Point 8) OO Heuristics: Explain the value of OO design heuristics in performing this
team project with examples. Please feel free to come up with your own heuristics.
3
9. (Point 9) Prepare a rewrite of your problem statement.
Final Submission: A final report must be submitted.

The final report must be written with a theme or two in mind. A theme or two must be
selected per team. Contact me to select your themes. The following are a list of themes:
1. Complexity vs. Simplicity
2. Map the software stability concepts into the entire lifecycle
3. Use software stability concepts as a way to activate/ deactivate capabilities
4. Use software stability concepts as a way to add/ delete/ modify capabilities
5. Use software stability concepts as meta-language to describe and/or develop system
software and other software domain
6. Use the stability model (SM) as an accessibility model using roles
7. Definitions (Simplification): EBTs, Bos, Ios
8. Design/ analysis/ process patterns vs SM
9. Aspects vs SM
10. KRs in AI vs SM
11. More Stability patterns
12. The modeling of SM with different modeling language such as UML, formal
methods, OMT, fusion, RA/SA
13. Measurement of SM within the software
14. The impact of SM on Scalability
15. The impact of SM on Layering/ categorizing
16. SM framework
17. In SM, where are the hooks and at what level should be?
18. The impact of SM on Prevention and security
19. The impact of SM on Multiple view
20. The impact of SM on the cost and expending of your system or your operation.
21. Criteria for SW stability in Analysis
22. Criteria for SW stability in Design
23. Criteria for SW stability in Coding and Debugging
24. Criteria for SW stability in Testing
25. SM and representation adequacies, such as:
Descriptive Adequacy
Descriptive adequacy refers to the ability to visualize objects in the models. Every defined
object should be browse-able, allowing the user to view the structure of an object and its state at a
particular point in time. This requires understanding and extracting meta-data about objects that
will be used to build a visual model of objects and their configurations. This visual model is
domain dependent -- that is, based on domain data and objects’ meta-data. Descriptive adequacy
requires that all of the knowledge representation is visual, as follows:





Visual models are structured to reflect natural structure of objects and their configurations
All the visual knowledge (data & operations) in the visual model is localized
Relationships among objects in the visual model are well-defined
Interactions among objects in the visual model are limited and concise
The visual model must transcend objects, and instead highlight crosscutting aspects.
4
Logical Adequacy
Logical adequacy refers to the representation tools that describe the framework components’
behavior, roles and responsibilities.
Synthesis Adequacy
Synthesis adequacy refers to an integrated problem resolution methodology, or built in
trouble-shooting tools. Built-in trouble-shooting tools are very important in managing complex
distributed systems, because there are typically many potential points of failure.
Analysis adequacy
Analysis adequacy refers to integrated validation and verification tools. With built in
validation and verification, the process of maintenance and regression testing can be streamlined
and the cost of validation and verification is minimized.
Blueprint Adequacy
Blueprint adequacy refers to the modeling features that provide for integrated system
specifications. Integrated system specifications are important because they facilitate the
extensibility of the system. An integrated blueprint for an enterprise framework should clearly
identify the hot-spots and frozen-spots in the framework.
Epistemological Adequacy
Epistemological adequacy refers to tools for representing objects in the real world. There are
two ways to view the world based on simplicity: (1) Perfect but simple view – the world is
represented in this view as an ideal environment and (2) As-is, but complex and detailed view –
the world is represented as an ultimate reality. There are also two ways to view an organization:
1) Flat and single view and 2) layered and multiple views. It is very obvious that most of
modeling techniques, such as unified modeling language (UML) and object-modeling technique
(OMT) model the world as an ideal environment and flat or single view of itself. Nevertheless,
successful enterprise frameworks have made great leaps in representing objects in the real world
and in providing the necessary tools to alter these objects as required by the business.
Notational Adequacy
Notational adequacy refers to the presentation constructs the impact the presentation tools
have on the operation of the system as well as the ease of modification.
Procedural Adequacy
Procedural adequacy refers to recognition, and search capabilities.
Contractual Adequacy
Contractual adequacy refers to the client tools for representing the system behavior.
Scalable Adequacy
Scalable adequacy relates to the constructs and tools supporting partitioning, composition,
security, and access control.
Administrative adequacy
Administrative adequacy refers to the tools for modeling the deployed system’s performance,
reliability and administrative characteristics and to the actual tools for administering the system.
Administrative adequacy also considers the availability of install set builders, start and stop
5
procedures or scripts, integrated database management capabilities, archiving, fail-over
mechanisms, etc.
Team Name
Analysis & Design Patterns or Selected Theme(s)
----------------------------------------------------------------------------------------------------- The final product of this project is a report with the following outline.
Remember this report should be written with stability in mind:
Title:
Authors Names
Short Abstract
Introduction
Use Case Model:
Use Case Diagrams (with descriptions) -- (Point 4)
Use Cases using the attached template or
any other template that you select -- (Point 4)
CRC Cards (Point 5)
Class Diagram – Traditional (with descriptions) – (Point 3)
Class Diagram – Stability (with descriptions) – (Point 6)
Compare & evaluate traditional and stability diagrams (Points 3 & 6) & (Points 1 & 4)
Behavior Model-1 (with descriptions) (Point 7)
Behavior Model-2 (with descriptions) (Point 7)
OO Design Heuristics (Point 8)
Lesson Learned (Optional)
Conclusions
References
Appendix A: Rewrite of the Team Project Requirements (Point 9)
------------------------------------------------------------------------------------------------------
6
Project:
As stated on the syllabus, the project is worth 35% of the total grade. The project breakdown will
be as follows (the % of Grade is the overall course grade):
Item
% of Grade
Specification Models (Diagrams) & Final Report
20%
Theme focus in your report
5%
In addition to:
Item
% of Grade
Requirements Document “Complete Team Problem Statement” – Check the
team project problem statement)
5%
Team Presentation (Check the representation requirements and schedule)
5%
Grading Criteria for the final submission (the final report without the team problem
statement and the team presentation)
Item
% of Grade
Illustrations and diagrams
30%
Completeness and accuracy
30%
The writing quality, readability, and organization
20%
Creativity, innovation, patterns and/or theme focus
20%
1. Illustrations and diagrams: This refers to any illustrated models, such as all diagrams,
that provide clear and accurate models, such as object models, behavior models, etc.
Make sure all models and their requirements are illustrated.
2. Completeness and accuracy: This refers to how completely the group has described the
user context, different abstractions, and different models. Make sure all models and their
requirements are complete and accurate.
3. The writing quality, readability, and organization: This refers to the quality of the
report and how readable is it. It should be easy to understand. This also refers to how
well-organized and readable the document is. If the document is written poorly, it will be
downgraded.
4. Creativity, innovation, patterns and/or theme focus: Creativity and innovation will be
rewarded. Try to come up with some good ideas that fit the innovative. This also refers to
coming up with and documenting analysis and design patterns in your model and/or how
will the select theme(s) are illustrated and elaborated in the entire document.
7
Download