PART A1 (a) Investigate the Unified Modeling Language (UML) on the Internet. Write aparagraph news brief describing the current state of the UML.Unified Modeling language (UML) is a consistent showing language allowing creators to specify, imagine, theory and document things of a software system. Therefore, UML makes this manufactured article callable, secure and strong in performance.
UML is a vital model involved in object-oriented for software development. Its custom realistic graphic system to produce visual model of software systems.UML diagrams can be divided into two categories. UML diagrams can be separated into two class. The UML goal is to provide standard notation that can be used by all object-oriented steps and select to ntegrate the best elements of precursor notation. The UML has been designed for a broad range of applications. Hence, it provides constructs for a broad range of systems and activities.
The goals in the design of the UML summarize is :Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models.Provide flexibility 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 besidesUML. 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 (System), which is a domain-specific modeling language for Systems Engineering based on the UML.
Whereas UML is focused on software development, System is optimized for a broad range of systems and systems-of-systems. Other OMG specifications include the Model Driven Architecture (MDA), the Meta Object Facility (MOF), the XML Meta data Interface (XMI), the Common Warehouse Melodrama (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 Spar x 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 desirability 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 ModelingAdvantages 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 deliverable, 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 projectIn this model, basic functionality is delivered quickly, with more functionality being delivered at frequent intervalsThis method provides an easy access by developers to end-usersIn this kind of development, approach projects are delivered on time and within a specific budgetDisadvantages 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 projectsIt 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 work flow.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 projectDelivering 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 deliveredEmpowerment 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 skillsThe 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 themIn 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 workIV) 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 teamsThis methodology enables project’s where the business requirements documentation is not considered very significant for the successful developmentIt is a lightly controlled method which totally empathizes on frequent updating of the progress, therefore, project development steps is visible in this methodA 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 membersDisadvantages of Scrum Development:This kind of development model is suffered if the estimating project costs and time will not be accurateIt is good for small, fast moving projects but not suitable for large size projectsThis methodology needs experienced team members only.
If the team consists of people who are novices, the project cannot be completed within exact time frameV) 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 successThe simple five processes help to bring work done in a short time and easiest mannerThis 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 developerHigh dependency on the main developer means the person should be fully equipped for an act as coordinator, lead designer, and mentorNo written documentation provided to clients in this methodology so, they are not able to get a proof for their own software.PART B(a) To prepare requirement list. CourseA class offered by the university.
Course OfferingA specific delivery of the course for a specific semester you could run the same course in parallel sessions in the semester. Includes the days of the week and times it is offered.Course CatalogThe unabridged catalog of all courses offered by the university.FacultyAll the professors teaching at the university.Finance SystemThe system used for processing billing information.GradeThe evaluation of a particular student for a particular course offering.ProfessorA person teaching classes at the university.Report CardAll the grades for all courses taken by a student in a given semester.RosterAll the students enrolled in a particular course offering.StudentA person enrolled in classes at the university.ScheduleThe courses a student has selected for the current semester.TranscriptThe history of the grades for all courses, for a particular student sent to the finance system, which in turn bills the students.FunctionalityMultiple 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.UsabilityThe desktop user-interface shall be Windows 95/98 compliant.PerformanceThe system shall support up to 2000 simultaneous users against the central database at any given 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.SecurityThe system must prevent students from changing any schedules other than their own, and professors 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 description31115186055