1 (a) Investigate the Unified Modeling Language (UML) on the Internet. Write a
paragraph news brief describing the current state of the UML.
Unified Modeling language (UML) is a consistent displaying language allowing creators to specify, imagine, theory and document objects of a software system. Therefore, UML makes this manufactured article scalable, secure and strong in performance. UML is a vital feature involved in object-oriented software development. Its custom realistic graphic system to produce visual models of software systems.UML diagrams can be divided into two categories. UML diagrams can be separated into two classes. The goal of UML is to provide a standard notation that can be used by all object-oriented methods and to select and integrate the best elements of precursor notations. UML has been designed for a broad range of applications. Hence, it provides constructs for a broad range of systems and activities. The primary goals in the design of the UML summarize by Page-Jones in Fundamental Object-Oriented Design in UML as follows:
Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models.
Provide extensibility and specialization mechanisms to extend the core concepts.
Be independent of particular programming languages and development processes.
Provide a formal basis for understanding the modeling language.
Encourage the growth of the OO tools market.
Support higher-level development concepts such as collaborations, frameworks, patterns and components.
Integrate best practices.
(b) Investigate the Object Management Group (OMG) on the Internet. Write a report describing the purpose of OMG and what it is involved with besides
The Object Management Group is a consortium of organizations whose purpose it is to set standards for object-oriented systems. The OMG is the group that ratified the UML as an industry standard. In addition to the UML, the OMG is responsible for the development of other object-oriented products such as the Systems Modeling Language (SysML), which is a domain-specific modeling language for Systems Engineering based on the UML. Whereas UML is focused on software development, SysML is optimized for a broad range of systems and systems-of-systems. Other OMG specifications include the Model Driven Architecture (MDA), the MetaObject Facility (MOF), the XML Metadata Interface (XMI), the Common Warehouse Metamodel (CWM), the Common Object Request Broker Architecture (CORBA), and the Object Management Architecture (OMA).
(c) Using the Internet, find a set of CASE tools that support the UML. A couple of examples include Rational Rose and Poseidon. Find at least three additional ones. Write a short report describing how well they support the UML, and make a recommendation as to which one you believe would be best for a project team to use in developing an object-oriented information system using the UML.
One of the best commercial tools (besides the ones listed) is Sparx Systems’ Enterprise Architect. This is a much more affordable product than IBM’s Rational line. It also offers many of the same features including end-to-end visibility, speed, stability, and performance. It supports all UML 2.1 diagrams and has robust importing and exporting capabilities for code analysis and creation, document generation, and general documentation. In terms of good open-source, free CASE tools, StarUML is a solid performer. It runs on Microsoft Windows platforms, supports the UML 2.0 standard, provides a plug-in architecture for additional modules, and has a well designed interface. StarUML supports the most common 9 (out of 14) UML diagrams with automatic code generation in Java, C++ and C#. It also produces Microsoft Word, Excel, and PowerPoint documents.
(d) Suppose you were an analyst developing a new information system to automate the sales transactions and manage inventory for each retail store in a large chain. The system would be installed at each store and exchange data with a mainframe computer at the company’s head office. Would you use the Unified Process to develop the system or would you prefer one of the traditional approaches.
I would not recommend the Unified Process (UP) unless the company has a strong tradition of using it. Moreover, an information system normally involves rigid requirements and a strong reliability constraint. It is, therefore, not an ideal type of project with which to lead an organization away from its established practices. Among the traditional approaches, this project appears to be ideal for throway prototyping development. In this case, different information tasks can be developed, and the systems tested to determine optimum performance. Although the project probably will not be large enough for parallel development, different applications may be simultaneously developed, and then consolidated into one system. This is a perfect scenario for the application of the Unified Process. The reason is that this methodology excels at distributed object-oriented development. Also the large scope of the project means that the relatively high-cost of the UP would be more than offset by the savings induced by reusability and a distributed framework.
Discuss and compare any FIVE (5) Agile Development Methods in terms of its advantages, disadvantages and differences and other related issues.
I) Agile Modeling
Advantages of Agile model:
Customer satisfaction by rapid, continuous delivery of useful software.
Working software is delivered frequently (weeks rather than months).
Face-to-face conversation is the best form of communication.
Close, daily cooperation between business people and developers.
Continuous attention to technical excellence and good design.
Regular adaptation to changing circumstances.
Even late changes in requirements are welcomed.
Disadvantages of Agile model:
In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle.
There is lack of emphasis on necessary designing and documentation.
The project can easily get taken off track if the customer representative is not clear what final outcome that they want.
When to use Agile model:
When new changes need to be implemented. The freedom agile gives to change is very important. New changes can be implemented at very little cost because of the frequency of new increments that are produced.
To implement a new feature the developers need to lose only the work of a few days, or even only hours, to roll back and implement it.
II) Dynamic Systems Development Model
is a software development methodology originally based on the Rapid Application Development methodology. This is an iterative and incremental approach that emphasizes continuous user involvement. Its main aim is to deliver software systems on time and on the budget. This model simply works on the philosophy that nothing is developed perfectly in the first attempt and considers as an ever-changing process.
Advantages of Dynamic Systems Development Model:
Users are highly involved in the development of the system so, they are more likely to get a grip on the software development project
In this model, basic functionality is delivered quickly, with more functionality being delivered at frequent intervals
This method provides an easy access by developers to end-users
In this kind of development, approach projects are delivered on time and within a specific budget
Disadvantages of Dynamic Systems Development Model:
The first thing is DSDM is costly to implement, as it requires users and developers both to be trained to employ it effectively. It may not be suitable for small organizations or one-time projects
It is a relatively new model, therefore, it is not very common and easy to understand
III) Lean Development Methodology
focuses on the creation of easily changeable software. This Software Development model is more strategically focused than any other type of agile methodology. The goal of this methodology is to develop software in one-third of the time, with very limited budget, and very less amount of required workflow.
Advantages of Lean Development Methodology:
The early elimination of the overall efficiency of the development process certainly helps to speeds up the process of entire software development which surely reduces the cost of the project
Delivering the product early is a definite advantage. It means that development team can deliver more functionality in a shorter period of time, hence enabling more projects to be delivered
Empowerment of the development team helps in developing the decision-making ability of the team members which created more motivation among team members.
Disadvantages of Lean Development Methodology:
Success in the software development depends on how disciplined the team members are and how to advance their technical skills
The role of a business analyst is vital to ensure the business requirements documentation is understood properly. If any organization doesn’t have a person with the right business analyst then this method may not be useful for them
In this development model, great flexibility is given to developer which is surely great, but too much of it will quickly lead to a development team who lost focus on its original objectives thus, it hearts the flow of entire project development work
IV) The Scrum Development Methodology
can be applied to nearly any project. This process is suited for development projects that are rapidly changing or highly emergent requirements. The Scrum software development model begins with a brief planning, meeting and concludes with a final review. This development methodology is used for speedy development of software which includes a series of iterations to create required software. It is an ideal methodology because it easily brings on track even the slowest progressing projects.
Advantages of Scrum Development:
In this methodology, decision-making is entirely in the hands of the teams
This methodology enables project’s where the business requirements documentation is not considered very significant for the successful development
It is a lightly controlled method which totally empathizes on frequent updating of the progress, therefore, project development steps is visible in this method
A daily meeting easily helps the developer to make it possible to measure individual productivity. This leads to the improvement in the productivity of each of the team members
Disadvantages of Scrum Development:
This kind of development model is suffered if the estimating project costs and time will not be accurate
It is good for small, fast moving projects but not suitable for large size projects
This methodology needs experienced team members only. If the team consists of people who are novices, the project cannot be completed within exact time frame
V) Feature Driven Development
is an iterative software development methodology intended for use by large teams working on a project using object-oriented technology. This type of model is good for organizations that are transitioning from a phase-based approach to an iterative approach, this methodology also known as an FDD methodology.
Advantages of FDD Methodology:
FDD Helps to move larger size projects and obtain repeatable success
The simple five processes help to bring work done in a short time and easiest manner
This type of model is built on set standards for software development industry, so it helps easy development and industry recognized best practices.
Disadvantages of FDD Methodology:
Not an ideal methodology for smaller projects so, it is not good for an individual software developer
High dependency on the main developer means the person should be fully equipped for an act as coordinator, lead designer, and mentor
No written documentation provided to clients in this methodology so, they are not able to get a proof for their own software.
(a) To prepare requirement list.
A class offered by the university.
A specific delivery of the course for a specific semester you could run the same course inparallel sessions in the semester. Includes the days of the week and times it is offered.
The unabridged catalog of all courses offered by the university.
All the professors teaching at the university.
The system used for processing billing information.
The evaluation of a particular student for a particular course offering.
A person teaching classes at the university.
All the grades for all courses taken by a student in a given semester.
All the students enrolled in a particular course offering.
A person enrolled in classes at the university.
The courses a student has selected for the current semester.
The history of the grades for all courses, for a particular student sent to the finance system, which inturn bills the students.
Multiple users must be able to perform their work concurrently.If a course offering becomes full while a student is building a schedule including that offering,the student must be notified.
The desktop user-interface shall be Windows 95/98 compliant.
The system shall support up to 2000 simultaneous users against the central database at anygiven time, and up to 500 simultaneous users against the local servers at any one time.The system must be able to complete 80% of all transactions within 2 minutes.
The system must prevent students from changing any schedules other than their own, andprofessors from modifying assigned course offerings for other professors.Only Professors can enter grades for students.Only the Registrar is allowed to change any student information.
(b) To develop use case model and description