Object Oriented Analysis and Design - Essay Example

Briefly describe the functionality of JIMS. List down the issues and deficiencies of the diagrams used in the latest ML version and describe how these issues and deficiencies could be overcome. Answer: The ML architecture is based on the meta object facility, which defines the foundation for creating modeling language. They are precise enough to generate the entire application. A fully executable ML can be deployed to multiple platforms using different technologies and can be used with all processes throughout the software development cycle.

We Will Write A Custom Essay Sample On

For Only $13.90/page

order now

ML is designed to enable users to develop an expressive, ready to use visual modeling language. In addition, it supports high level development concepts such as frameworks, patterns and collaborations. ML includes a collection of elements such as: Programming Language Statements Actors: specify a role played by a user or any other system interacting with the subject. Activities: These are tasks, which must take place in order to fulfill an operation contract. They are represented in activity diagrams.

Business Process: includes a collection of tasks producing a specific service for customers and is equalized with a flowchart as a sequence of activities. Logical and Reusable Software Components The issues and deficiencies of the diagrams used in the latest ML version and describe how these issues and deficiencies could be overcome. Deficiency 1 . A ML use case model cannot specify interaction requirements where the system shall initiate an interaction between the system and an external actor. Deficiency 2. ML cannot model a rich system context.

Deficiency 3. ML can neither express structure between use cases nor a structural hierarchy of use cases in an easy and straightforward way. Deficiency 4. ML revised no adequate means for dealing with use case interaction. Deficiency 5. A ML use case model cannot express state-dependent system behavior adequately. Deficiency 6. Modeling information flow in a system consisting of subsystems is awkward in ML. Deficiency 7. ML cannot model the behavior of high level system components such as subsystems. Deficiency 8.

ML cannot adequately model the decomposition of a distributed system, neither with the language element Subsystem nor with another ML language element Deficiency 9. ML cannot model all aspects of a composite entity like a subsystem together in a single view. A fundamental point in the analysis of a deficiency is whether the nature of the problem is accidental, essential or fundamental. Accidental deficiencies in a language can be fixed by minor modifications that fully conform to the paradigm of the language, I. E. To its basic ideas, structures and properties.

Overcoming essential deficiencies requires modifications affecting major concepts of the language. Fundamental deficiencies cannot be removed without modifying basic concepts of the language. Analyzing our nine deficiencies, we can say that deficiencies 1 and 2 are accidental, efficiencies 3, 4, 5, and 7 are essential, deficiencies 6, 8, and 9 are fundamental. Deficiency 1 (missing active model elements in use case diagrams) can be removed with a stereotype В«activeВ» for use cases or with a slight modification in the modeled allowing the inclusion of active objects in use case diagrams.

Deficiency 2 (no rich context) can be removed with a small, local modification in the modeled, allowing associations between actors. Deficiency 3 (no adequate modeling of use case structure and hierarchy) can partially be treated by defining a use case structure diagram in the style of Figure 2. This can be accomplished with a set of stereotypes for use cases and dependency relationships. However, consistency between such use case structures and the structure introduced by the subsystem decomposition cannot be ensured.

Removing this problem would require a uniform model decomposition concept – a fundamental modification. Deficiency 4 (inadequate treatment of use case interaction), Deficiency 5 (inadequate modeling of state- dependent system behavior) and Deficiency 7 (no models of highlighted component behavior) are related. As first aid for alleviating these problems, the following three measures could be taken. They imply moderate modifications of the ML modeled and the ML semantics. Allow a subsystem to have behavior of its own, I. E. Allow the attaching of state machines to subsystems.

Augment the use case model in the specification part of a subsystem with a class/object model which models state variables and operations/events modifying them. Consider this class/object model not as a realization of the use case model; instead view the two models as being complementary. Establish consistency between the two models with systematic cross-referencing [9]. In order to remove these deficiencies completely, a semantic integration of the aspects of structure, functionality, behavior and user interaction would be necessary – again a fundamental modification.

The treatment of Deficiency 6 (awkward information flow models), Deficiency 8 (inadequate decomposition concepts), and Deficiency 9 (no aspect-integrated views of composite entities) as well as the complete removal of deficiencies 3, 4, 5, and 7 would require modifications in the very foundations of ML – abandoning the concept of a loosely coupled collection of aspect models and moving towards an integrated model with a uniform decomposition mechanism. ) Model Driven Architecture (MAD) separates the fundamental logic behind a specification from the specifics of the particular middleware that implements it. This allows rapid development and delivery of new interoperability specifications that use new deployment technologies but are based on proven, tested business models. Organizations can use MAD to meet the integration challenges posed by new platforms, while preserving their investments in existing business logic based on existing platforms. Discuss how MAD could be used to determine how systems are to be built and the strengths and weaknesses of MAD.

Answer: The main benefit of MAD is that it clearly separates the fundamental logic behind a set of specifications from the characteristics of the particular middleware that implements it. In other words, the MAD approach distinguishes between the specifications of the operation of a system from the details of the way that the system uses the capabilities of its platform. This architectural separation of concerns constitutes the foundation of MAD, and was created with a view to achieving three main goals: portability, interoperability and risibility.

The MAD approach comprises three main steps: Specification of the system independently of the platform that supports it Specification of target platforms Transformation of system specifications into the specifications for a particular platform In short, MAD makes a sharp distinction between models of: the business model (the Computation-Independent Model, or COM), sometimes called a domain model, the business model in a specific technology context (PIMP), and A model that is tied to the business and uses platform-specific code (GSM).

There are two others steps which can be integrated into MAD process development: Capture of acquirement in a COM. The Computation-Independent Model captures the domain without reference to a particular system implementation or technology; the COM would remain the same even if the systems were implemented mechanically, rather than in computer software, for example; Deployment of the system in a specific environment. The issue here is the deployment of the system in several specific platforms and environments. (c) Using the Internet, find a set of CASE tools that support the JIMS.

A couple of examples include Rational Rose and Poseidon. Find at least three additional ones and scribe the visual and emerging development tools for JIMS. Describe the roles of CASE tools and how they are used to support ML and also explain them in terms of the four dimensions namely life-cycle support, integration dimension, construction dimension and knowledge-based CASE dimension. Identify the advantages when using CASE tools. The typical components of a comprehensive CASE environment. Answer: There are several commercial CASE tools supporting ML or aspects of ML.

Most of them are drawing editors that check the syntax of ML models and often generate code from the latter. Perhaps the best known is Rose from Rational Inc. Rose starts by default with two packages, one for use case diagrams and the other for class diagrams. But this isn’t always the most sensible separation: you can put either kind of diagram into any package, and mix classes, use cases, and actors in a diagram as you Judge appropriate. Use cases can be dragged onto class diagrams and vice versa. You can mix them in one diagram or not, as you prefer.

Keywords, invariants and roulettes are not well supported and so one must use comments on for descriptions, roulettes, invariants and pre- and post-conditions. In Rose, class diagrams and catechists are always in separate diagrams. Also, Rose does not permit more than one statecraft per class; if there are more, one must draw them all on one diagram. One advantage, if such it is, of Rose is the fact that it integrates well with other Rational tools for configuration management, testing, requirements documentation and so on.

There are also tools from third parties such as Roseland, which enables C+ + or Java application skeletons for the Versant DOBBS to be generated, converting associations into C++ or DOOM collections. The temptation with all such tools is to rate huge diagrams. As we have argued, this is not a good idea; the ideal is a good narrative punctuated by small diagrams that help disambiguate and illustrate the text. Tools, such as Soda, can be used to help embed diagrams in the narrative.

It is a good idea to put any use case specifications in the main comment box – where they are more visible – and in attached notes, or both. (d) A system of broad principles or rules from which specific methods or procedures may be derived to interpret or solve different problems within the scope of a particular discipline. Unlike an algorithm, a methodology is not a formula but a set of practices. Why is methodology necessary to conduct a research? How do you choose the right methods for your research? Answer: If you are doing research then you have a methodology even if you do not state it.

The question is more about why you should write up your methodology in your research proposal and why you should write about it in any subsequent report once the research is completed. In writing a research proposal you need a methodology to explain where you are coming from and why you want to do the research in a reticular way. An assessing committee, a referee, a funding agency will all want to be assured that your research question is a good question that needs asking, that your approach will answer your question or address your hypothesis and that your approach will deliver the outcomes you seek.

Explaining your methodology helps others know why you want to do your research in a particular way. It helps others know that you know what you are doing. It gives confidence to funding agencies that you are not going to waste their money. If your methodology is new, innovative or Just lain different then you have to write more of a Justification so that others will understand what you are trying to do and why it is important to do it this new way.

Kappa MГROR research has needed explanation because it has been new and different and others who are assessing the proposal need to be informed so that they can make a decision. In writing about your research when you have completed the project you need an explanation of your methodology so that others can understand the significance of what you have done and make sense of how it all worked. The methodology piece says why you did what you did. It also enables you to write about what you did not do and why, and about the weaknesses or limitations of your project as well as its strengths.

Every research has a limitation of some sort and it is perfectly acceptable to identify the weaknesses of your own study. Stated below are key points that we should keep in mind when we are choosing the method for our research. Stated below points helps to select a proper method for the research. Who will be conducting the data collection? Where will data collection happen? Who will the participants be? What data do I need to draw from participants? How do I best enroll participants into the research? How do I intend to analyses the data?

How would I like to be treated as a research participant? What responsibility do I have to participants following the initial collection of data? Which method will help me answer my research question? Which methods are in line with my methodology? What kind of analysis needs to happen with the data collected from these methods? Question 2. The Agile movement proposes alternatives to traditional project management. Agile approaches are typically used in software development to help businesses respond o unpredictability.

Well-known agile software development methods include: Agile Modeling Agile Unified Process (ALP) Crystal Clear Crystal Methods Dynamic Systems Development Method (ADDS) Extreme Programming (XP) (Extreme programming is actually not regarded as Agile Software Development by many Academics) Feature Driven Development (FAD) Graphical System Design (GOD) Kanata Lean software development Scrum Velocity tracking Software Development Rhythms Discuss and compare any FIVE (5) Agile Development Methods in terms of its adoption and usage and why these methods are more suitable as compared to the rotational approaches and other related issues.

Crystal methodologies: The most agile method, Crystal Clear, focuses on communication in small teams developing software that is not life-critical. The Crystal methodology is one of the most lightweight, adaptable approaches to software development. Crystal is actually comprised of a family of agile methodologies such as Crystal Clear, Crystal Yellow, Crystal Orange and others, whose unique characteristics are driven by several factors such as team size, system criticality, and project priorities.

This Crystal family addresses the realization that each project may require slightly tailored set of policies, practices, and processes in order to meet the project ‘s unique characteristics. Several of the key tenets of Crystal include teamwork, communication, and simplicity, as well as reflection to frequently adjust and improve the process.

Like other agile process methodologies, Crystal promotes early, frequent delivery of working software, high user involvement, adaptability, and the removal of bureaucracy or distractions Dynamic Software Development Method (ADDS): It divides projects into three phases: pre-project, project life-cycle, and post project. ADDS is based on nine key principles that primarily revolve around business needs/ value, active user involvement, empowered teams, frequent delivery, integrated testing, and stakeholder collaboration.

ADDS specifically calls out “fitness for business purpose” as the primary criteria for delivery and acceptance of a system, focusing on the useful 80% of the system that can be deployed in 20% of the time. Requirements are baselines at a high level early in the project. Rework is built into the process, and all development changes must be reversible.

Requirements are landed and delivered in short, fixed-length time-boxes, also referred to as iterations, and requirements for ADDS projects are prioritize using MOSCOW Rules: M – Must have requirements S – Should have if at all possible C – Could have but not critical W – Won ‘t have this time, but potentially later All critical work must be completed in a ADDS project. It is also important that not every requirement in a project or time-box is considered critical. Within each time- box, less critical items are included so that if necessary, they can be removed to keep from impacting higher priority requirements on the schedule.

The ADDS project framework is independent of, and can be implemented in conjunction with, other iterative methodologies such as Extreme Programming and the Rational Unified Process. Feature driven development: The FAD variant of agile methodology was originally developed and articulated by Jeff De Luck, with contributions by M. A. Irishman, Limit Back Wee, Paul Goes, Jon Kern and Stephen Palmer. The first incarnations of FAD occurred as a result of collaboration between De Luck and DOD thought leader Peter Coda. FAD is a model-driven, short- iteration process.

It begins with establishing an overall model shape. Then it continues with a series of two-week “design by feature, build by feature” iterations. The features are small, “useful in the eyes of the client” results. FAD designs the rest of the development process around feature delivery using the following eight practices: Domain Object Modeling Developing by Feature Component/Class Ownership Feature Teams Inspections Configuration Management Regular Builds Visibility of progress and results It combines model-driven and agile development with emphasis on iterative design.

Lean software development: It consists of seven principles: eliminate waste, amplify earning, decide as late as possible, deliver as fast as possible, empower the team, build integrity, and see the whole. Lean Software Development is an iterative agile methodology originally developed by Mary and Tom Appendices. Lean Software Development owes much of its principles and practices to the Lean Enterprise movement, and the practices of companies like Toyota. Lean Software Development focuses the team on delivering Value to the customer, and on the efficiency of the “Value Stream,” the mechanisms that deliver that Value.

The main principles of Lean theology include: Eliminating Waste Amplifying Learning Deciding as Late as Possible Delivering as Fast as Possible Empowering the Team Building Integrity In Seeing the Whole Lean methodology eliminates waste through such practices as selecting only the truly valuable features for a system, proportioning those selected, and delivering them in small batches. It emphasizes the speed and efficiency of development workflow, and relies on rapid and reliable feedback between programmers and customers.

Lean uses the idea of work product being “pulled” via customer request. It focuses session-making authority and ability on individuals and small teams, since research shows this to be faster and more efficient than hierarchical flow of control. Lean also concentrates on the efficiency of the use of team resources, trying to ensure that everyone is productive as much of the time as possible. It concentrates on concurrent work and the fewest possible intra-team workflow dependencies. Lean also strongly recommends that automated unit tests be written at the same time the code is written.

The Kanata Method is used by organizations to manage the creation of products tit an emphasis on continual delivery while not overburdening the development team. Like Scrum, Kanata is a process designed to help teams work together more effectively. Scrum: Scrum is an Agile framework for completing complex projects. Scrum originally was formalized for software development projects, but it works well for any complex, innovative scope of work. The possibilities are endless. The Scrum framework is deceptively simple. Scrum involves: Initial appointment of a project manager called the “scrum master. Definition and parameterization of tasks to be done. Planning sessions for each task. Daily meetings among teams. Identification and evaluation of potential project risks and process pitfalls. Execution of projects in brief, high-intensity, frequent work sessions. Reviews of progress and evaluations of completed projects. Openness to constructive criticism and ideas for improvement. Scrum has three roles: Product Owner, Crummiest, and team member. It Focuses on project management in situations where is difficult to plan ahead, with an importance on feedback mechanisms Question 3.

As the head of information system, you are tasked with developing a new Election yester (SEES). The Automata Elections Commission is a designing a system to manage elections. The system will manage elections for a variety of different elected bodies(egg. School boards, city councils etc. ). Each elected body can have various positions (also called seats, egg. Mayor, councilor, etc. ). Elections are scheduled for a specific date and usually several (or all) positions are voted on together; however sometimes there may be the need for a billeting(egg.

To elect a particular councilor because the incumbent -the previous person who held the position- has resigned). The system ill keep track of candidates for each seat. The system will also have record who is the incumbent for a seat, since newspaper reporters are interested in reporting whether incumbents have won again or lost. The system records the name and address of each candidate and incumbent. The system will also keep track of the list of eligible voters. Each voter is can only vote for a certain positions (egg. A particular council seat that represents their area).

Each voter is also assigned to vote at a specific poll- each poll has a number and is located in a polling station. The system scores the name and address of each voter. Finally the system will keep track of the number of votes for each candidate at each poll. However, under no circumstance will it record which voter voted for which candidate, nor whether a voter voted at all. You are required: (a) To prepare requirement list (b) To develop use case model and description (c) To construct class model and description (a) Requirement List No. Requirement Use Case(s) The System will manage elections for a variety of different elected bodies.