The purpose of this Software Architecture Document is to describe, through the use of diagrams and descriptions, the architecture of the Event Driven Process Manager application. The document provides a comprehensive architectural overview of the system, and conveys the significant architectural decisions which have been made in the development of Event Driven Process Manager. A Pre-design Project Proposal and Work Plan, Project Requirements / Documentation, Design Documentation, and Installation Instructions have been included in the Appendices.
This document is a software requirements specification (SRS) for an unnamed project. It provides an overview of the project, describes key user classes and system features, outlines functional and non-functional requirements, and defines interfaces and other aspects of scope. The SRS establishes a common understanding of system requirements between stakeholders to guide project development and acceptance.
This document outlines the requirements and design specifications for a chat application. It aims to develop an easy-to-use instant messaging solution that allows users to communicate seamlessly. The specification covers functional and non-functional requirements, use case diagrams for authentication, chat, contacts, monitoring and maintenance functions, and sequence diagrams depicting key processes like registration, login, messaging and friend management. Data flow diagrams and class diagrams are also included.
The document provides an overview of a software requirements specification for a Personal Medical Record (PMR) mobile application designed for the Motorola Droid phone. The PMR app will allow users to store, access, and comment on their medical records from their phone. Medical records will be stored on a central database and the app will download the latest records from the server. The document outlines the purpose, scope, definitions, organization, description of key functions and user characteristics, constraints, assumptions, and specific requirements of the PMR app.
This document provides a template for a functional requirements document (FRD) with sections for: introduction and scope, methodology, user requirements, data flow diagrams, logical data model, functional requirements, and other non-functional requirements. The template includes detailed descriptions and examples of the information to include in each section to fully define the functional and non-functional requirements of a system.
This low level design document outlines the tax payer registration functionality with details of the navigation flow, UI implementation, client and server side validations, components design, data design with key tables and access levels, and testing approach. It provides developers with a reference to develop the system with minimal effort.
This document provides a software requirements specification for a login module system with four submodules: login, register, forgot password, and reset password. It includes functional requirements for each submodule, describing how users will interact with the system. The intended audience is developers and other stakeholders. The project scope is to create a reusable login module for authentication and authorization across applications for an ABC Company. The document describes the product features and operating environment, including interfaces and constraints.
This document is a software requirements specification (SRS) for an unnamed project. It provides an overview of the project, describes key user classes and system features, outlines functional and non-functional requirements, and defines interfaces and other aspects of scope. The SRS establishes a common understanding of system requirements between stakeholders to guide project development and acceptance.
This document outlines the requirements and design specifications for a chat application. It aims to develop an easy-to-use instant messaging solution that allows users to communicate seamlessly. The specification covers functional and non-functional requirements, use case diagrams for authentication, chat, contacts, monitoring and maintenance functions, and sequence diagrams depicting key processes like registration, login, messaging and friend management. Data flow diagrams and class diagrams are also included.
The document provides an overview of a software requirements specification for a Personal Medical Record (PMR) mobile application designed for the Motorola Droid phone. The PMR app will allow users to store, access, and comment on their medical records from their phone. Medical records will be stored on a central database and the app will download the latest records from the server. The document outlines the purpose, scope, definitions, organization, description of key functions and user characteristics, constraints, assumptions, and specific requirements of the PMR app.
This document provides a template for a functional requirements document (FRD) with sections for: introduction and scope, methodology, user requirements, data flow diagrams, logical data model, functional requirements, and other non-functional requirements. The template includes detailed descriptions and examples of the information to include in each section to fully define the functional and non-functional requirements of a system.
This low level design document outlines the tax payer registration functionality with details of the navigation flow, UI implementation, client and server side validations, components design, data design with key tables and access levels, and testing approach. It provides developers with a reference to develop the system with minimal effort.
This document provides a software requirements specification for a login module system with four submodules: login, register, forgot password, and reset password. It includes functional requirements for each submodule, describing how users will interact with the system. The intended audience is developers and other stakeholders. The project scope is to create a reusable login module for authentication and authorization across applications for an ABC Company. The document describes the product features and operating environment, including interfaces and constraints.
This document contains the requirement specification and design for a chat application. It includes use case diagrams and tables describing the authentication system, contacts form, chat form, maintenance, and monitoring features. It also includes activity diagrams, class diagrams, entity relationship diagrams, and sequence diagrams modeling the application's functionality and architecture. The data flow diagrams show the high-level data flows and data transformation processes within the chat application.
The document is a software requirements specification (SRS) for a new online booking system for Cool Ski Resorts. It provides an overview of the project, outlines the system features and user requirements. Key aspects include: allowing customers to book rooms, equipment and classes online; managing inventory, payments and financial reports; and improving work efficiency for staff. The system is intended to digitize current paper-based processes and provide a better experience for customers.
The document describes the architectural design process for a Library Circulation System. It includes 4 steps: 1) Representing the system context, 2) Defining archetypes, 3) Refining the architecture into components, and 4) Describing system instantiations. It then covers the component design process, including identifying classes, elaborating classes, describing data sources, and developing behavioral representations. Finally, it discusses the user interface design process, including analyzing users and tasks.
The document provides a software requirements specification (SRS) for a library management system. It includes sections on the purpose and scope of the system, user requirements, system functions, and design constraints. The system will allow librarians to manage the library catalog and user accounts, and allow users to search for books, view their accounts, and borrow books. It will be a web-based system compatible with major browsers that integrates with a Microsoft SQL database. Non-functional requirements like security, performance and error handling are also addressed.
Software requirement solution of Real Estate Management System with Functional and Non-functional requirements, Activity diagram, use case diagram, class diagram and test cases.
Software Requirement Specification on Online Purchasing Systemsabafarheen
This document outlines the software requirements specification for an online purchase system. It includes sections on introduction, overall description, specific requirements, design constraints, advantages/disadvantages/challenges of online shopping, system design specification, and testing. The introduction provides an overview of online shopping and the purpose of the purchase system, which is to allow customers to easily calculate items in their shopping cart and view customer data. It defines key terms and the scope of purchasing and selling products/services over the internet.
This document provides a software requirements specification for an Attendance ERP system with the following key points:
- It describes the purpose, audience, product scope, and references for an attendance management system.
- The system has 3 modules for administration, faculty, and students, and allows taking and viewing attendance records.
- It defines the user classes, operating environment, design constraints, and documentation for the Attendance ERP software.
The document provides a design specification for a sports score system with speech recognition capabilities. It includes a high-level overview of the system architecture with four main subsystems: a server application, client application, sports score database, and dialog database. The document then describes each subsystem and component in more detail, including interfaces, data flows, and design considerations.
This document is a project report for a chat server application with file and desktop sharing capabilities. It was created by three students - Khagendra Kumar Chapre, Akhil Pal, and Manauwar Alam - as a partial fulfillment of their Bachelor of Technology degree at the Government Engineering College in Bikaner, Rajasthan, India. The report documents the design, development and testing of a chat server that allows users to chat, share files, and share their desktop screens. It includes sections on introduction, literature review, requirements, architectural design, testing and results.
This document provides a summary of the requirements for a hotel management system being developed for Hotel Dayal. It outlines the purpose, scope, and objectives of the system, which is to automate major hotel operations like reservations, room management, inventory control, and guest management. The system will have three types of end users (owner, manager, receptionist) with different access levels. The document provides an overview of the system's product perspective and functions. Tables of contents and references are also included.
Software Requirement Specification For Smart Internet CafeHari
The document is a software requirements specification for a Smart Internet Cafe (SIC) system. It outlines requirements across many sections - introduction and document conventions, overall descriptions of the system and its users/environment, external interface requirements including the user interface, system features like authentication and monitoring, and non-functional requirements such as performance, security, and special user needs. The SIC will provide secure internet access and account/usage monitoring for clients of internet cafes and college computer labs.
This document outlines the requirements for a mobile application to facilitate communication between students, teachers, and administrators at Wireless Lan communicator. The app will allow users to call, video call, message, share documents and assignments. Key features include login/registration, profile management, contacts, file sharing, and an administrator interface to manage student/teacher data.
The document provides requirements for a web application to display schedule information for the Montreal Jazz Festival. It would allow tourists to view the full schedule and customize a personal schedule by selecting shows. Key requirements include allowing access to the full schedule, customizing a personal schedule, and maintaining show information in a database. Non-functional requirements specify the user interface, documentation, performance goals and security considerations.
The document is a software requirements specification for a website for Zeenath Trading (PVT) Limited. It outlines the project members and supervisor. It describes the key functions and users of the website, including allowing customers to order products, check their accounts, and send feedback. It provides system requirements and architecture diagrams. It also defines functional requirements like user registration and non-functional requirements including performance, safety, security, and quality attributes.
This document provides a software requirements specification for a medical store management system. The system aims to automate the manual record keeping process for medical stores to maintain product stock, accounting, and customer information. Key features include inventory management, sales tracking, accounting, and reporting. The system is intended to ease the workload of medical store professionals by digitizing important transaction records and business processes. It will be developed using Java and a SQL server database and include functionality for user login, data entry, searches, and backups.
This document provides an overview of the proposed Android Blood Bank system. It describes the system architecture, which includes use case diagrams for users, admins, and blood banks. It also includes sequence diagrams showing interactions like user registration and blood requests. The data design section outlines the structured design and data transformations. It includes data dictionaries describing the structures for admins, blood banks, and blood requests.
This document is a software requirements specification (SRS) for an unnamed project. It provides an overview of the purpose and scope of the project. It describes the intended users, operating environment, and design constraints. It outlines the major system functions and user classes. It specifies the external interface requirements including the user interface, hardware interfaces, software interfaces, and communication interfaces. It describes the key system features and lists other nonfunctional requirements around performance, safety, security, and quality. It provides appendices for terms, models, and a list of items still to be determined. The overall purpose is to specify the requirements for the software being developed.
The document is a software requirements specification (SRS) for a web-accessible alumni database. It describes the system's purpose, scope, and overview. The system allows alumni to fill out a survey, create or update a database entry, and search for or email other alumni. It includes use cases, functional requirements, and non-functional requirements to guide development of the alumni database website and ensure it meets intended needs.
The document provides an overview of the technical capabilities of the InfoRouter content management system. It describes how InfoRouter is standards-based, scalable, secure, entirely web-based, browser independent, supports multiple document formats and languages, integrates with LDAP directories, and has a distributed architecture. It also discusses features like metadata services, web portals, live updating, and integration with web services APIs.
The document describes the software architecture of Voicenger, an application for structured group communication. It uses a peer-to-peer architecture with client and server components to allow high quality voice chatting. The client has interfaces for the user interface, peer communication, and profile storage on the server. Key high-level modules include the GUI, file processing, sound, messaging, and interfaces to the JXTA peer network and backend database. Use cases cover user registration, chat, file sharing, and integrating with social networks. Appendices provide more details on data transfer and message rendering.
This document contains the requirement specification and design for a chat application. It includes use case diagrams and tables describing the authentication system, contacts form, chat form, maintenance, and monitoring features. It also includes activity diagrams, class diagrams, entity relationship diagrams, and sequence diagrams modeling the application's functionality and architecture. The data flow diagrams show the high-level data flows and data transformation processes within the chat application.
The document is a software requirements specification (SRS) for a new online booking system for Cool Ski Resorts. It provides an overview of the project, outlines the system features and user requirements. Key aspects include: allowing customers to book rooms, equipment and classes online; managing inventory, payments and financial reports; and improving work efficiency for staff. The system is intended to digitize current paper-based processes and provide a better experience for customers.
The document describes the architectural design process for a Library Circulation System. It includes 4 steps: 1) Representing the system context, 2) Defining archetypes, 3) Refining the architecture into components, and 4) Describing system instantiations. It then covers the component design process, including identifying classes, elaborating classes, describing data sources, and developing behavioral representations. Finally, it discusses the user interface design process, including analyzing users and tasks.
The document provides a software requirements specification (SRS) for a library management system. It includes sections on the purpose and scope of the system, user requirements, system functions, and design constraints. The system will allow librarians to manage the library catalog and user accounts, and allow users to search for books, view their accounts, and borrow books. It will be a web-based system compatible with major browsers that integrates with a Microsoft SQL database. Non-functional requirements like security, performance and error handling are also addressed.
Software requirement solution of Real Estate Management System with Functional and Non-functional requirements, Activity diagram, use case diagram, class diagram and test cases.
Software Requirement Specification on Online Purchasing Systemsabafarheen
This document outlines the software requirements specification for an online purchase system. It includes sections on introduction, overall description, specific requirements, design constraints, advantages/disadvantages/challenges of online shopping, system design specification, and testing. The introduction provides an overview of online shopping and the purpose of the purchase system, which is to allow customers to easily calculate items in their shopping cart and view customer data. It defines key terms and the scope of purchasing and selling products/services over the internet.
This document provides a software requirements specification for an Attendance ERP system with the following key points:
- It describes the purpose, audience, product scope, and references for an attendance management system.
- The system has 3 modules for administration, faculty, and students, and allows taking and viewing attendance records.
- It defines the user classes, operating environment, design constraints, and documentation for the Attendance ERP software.
The document provides a design specification for a sports score system with speech recognition capabilities. It includes a high-level overview of the system architecture with four main subsystems: a server application, client application, sports score database, and dialog database. The document then describes each subsystem and component in more detail, including interfaces, data flows, and design considerations.
This document is a project report for a chat server application with file and desktop sharing capabilities. It was created by three students - Khagendra Kumar Chapre, Akhil Pal, and Manauwar Alam - as a partial fulfillment of their Bachelor of Technology degree at the Government Engineering College in Bikaner, Rajasthan, India. The report documents the design, development and testing of a chat server that allows users to chat, share files, and share their desktop screens. It includes sections on introduction, literature review, requirements, architectural design, testing and results.
This document provides a summary of the requirements for a hotel management system being developed for Hotel Dayal. It outlines the purpose, scope, and objectives of the system, which is to automate major hotel operations like reservations, room management, inventory control, and guest management. The system will have three types of end users (owner, manager, receptionist) with different access levels. The document provides an overview of the system's product perspective and functions. Tables of contents and references are also included.
Software Requirement Specification For Smart Internet CafeHari
The document is a software requirements specification for a Smart Internet Cafe (SIC) system. It outlines requirements across many sections - introduction and document conventions, overall descriptions of the system and its users/environment, external interface requirements including the user interface, system features like authentication and monitoring, and non-functional requirements such as performance, security, and special user needs. The SIC will provide secure internet access and account/usage monitoring for clients of internet cafes and college computer labs.
This document outlines the requirements for a mobile application to facilitate communication between students, teachers, and administrators at Wireless Lan communicator. The app will allow users to call, video call, message, share documents and assignments. Key features include login/registration, profile management, contacts, file sharing, and an administrator interface to manage student/teacher data.
The document provides requirements for a web application to display schedule information for the Montreal Jazz Festival. It would allow tourists to view the full schedule and customize a personal schedule by selecting shows. Key requirements include allowing access to the full schedule, customizing a personal schedule, and maintaining show information in a database. Non-functional requirements specify the user interface, documentation, performance goals and security considerations.
The document is a software requirements specification for a website for Zeenath Trading (PVT) Limited. It outlines the project members and supervisor. It describes the key functions and users of the website, including allowing customers to order products, check their accounts, and send feedback. It provides system requirements and architecture diagrams. It also defines functional requirements like user registration and non-functional requirements including performance, safety, security, and quality attributes.
This document provides a software requirements specification for a medical store management system. The system aims to automate the manual record keeping process for medical stores to maintain product stock, accounting, and customer information. Key features include inventory management, sales tracking, accounting, and reporting. The system is intended to ease the workload of medical store professionals by digitizing important transaction records and business processes. It will be developed using Java and a SQL server database and include functionality for user login, data entry, searches, and backups.
This document provides an overview of the proposed Android Blood Bank system. It describes the system architecture, which includes use case diagrams for users, admins, and blood banks. It also includes sequence diagrams showing interactions like user registration and blood requests. The data design section outlines the structured design and data transformations. It includes data dictionaries describing the structures for admins, blood banks, and blood requests.
This document is a software requirements specification (SRS) for an unnamed project. It provides an overview of the purpose and scope of the project. It describes the intended users, operating environment, and design constraints. It outlines the major system functions and user classes. It specifies the external interface requirements including the user interface, hardware interfaces, software interfaces, and communication interfaces. It describes the key system features and lists other nonfunctional requirements around performance, safety, security, and quality. It provides appendices for terms, models, and a list of items still to be determined. The overall purpose is to specify the requirements for the software being developed.
The document is a software requirements specification (SRS) for a web-accessible alumni database. It describes the system's purpose, scope, and overview. The system allows alumni to fill out a survey, create or update a database entry, and search for or email other alumni. It includes use cases, functional requirements, and non-functional requirements to guide development of the alumni database website and ensure it meets intended needs.
The document provides an overview of the technical capabilities of the InfoRouter content management system. It describes how InfoRouter is standards-based, scalable, secure, entirely web-based, browser independent, supports multiple document formats and languages, integrates with LDAP directories, and has a distributed architecture. It also discusses features like metadata services, web portals, live updating, and integration with web services APIs.
The document describes the software architecture of Voicenger, an application for structured group communication. It uses a peer-to-peer architecture with client and server components to allow high quality voice chatting. The client has interfaces for the user interface, peer communication, and profile storage on the server. Key high-level modules include the GUI, file processing, sound, messaging, and interfaces to the JXTA peer network and backend database. Use cases cover user registration, chat, file sharing, and integrating with social networks. Appendices provide more details on data transfer and message rendering.
Software Architecture Document | Part 1Habibur Rony
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive function. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms for those who already suffer from conditions like depression and anxiety.
As per my experience in Business Analysis and Presales,this the process I identified for presales executive roles and responsibilities involved in the Prospect Initiation to Account Closure.
This document provides an architectural overview of the IEEE Montreal Web Portal system using the 4+1 architectural view model. It describes the purpose, scope, definitions, and references. It then outlines the use case, logical, process, deployment, and implementation views to illustrate different aspects of the system's architecture according to the 4+1 view model. The views are described at a high level based on the provided template.
The document discusses software architecture documentation. It provides goals for architecture documentation, including presenting common views, defining stakeholders, identifying their concerns, and defining what and how to document. It also discusses the scope of the documentation. Finally, it discusses different approaches to software architecture documentation, including the Rational Unified Process (RUP) and Software Engineering Institute (SEI) methods. The document aims to provide guidance on effective software architecture documentation.
This document provides a template for an architecture document that includes:
1. An introduction section describing the purpose, scope, definitions, and references.
2. A business architecture section describing the business context, processes, events, and impacts.
3. A functional architecture section describing the functional composition, most significant functions/use cases, and functional communication/interactions.
4. Additional sections for application architecture, software architecture requirements, technical architecture, deployment architecture, development strategy, data migration strategy, deployment strategy, configuration and version management strategy, security and conformance constraints, risks, and appendices.
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
Thinking about your sales team's goals for 2017? Drift's VP of Sales shares 3 things you can do to improve conversion rates and drive more revenue.
Read the full story on the Drift blog here: http://blog.drift.com/sales-team-tips
How to Become a Thought Leader in Your NicheLeslie Samuel
Are bloggers thought leaders? Here are some tips on how you can become one. Provide great value, put awesome content out there on a regular basis, and help others.
Introduction to Modern Software ArchitectureJérôme Kehrli
This document provides an overview of modern software architecture models and concepts. It begins with an introduction to software architecture and definitions. It then discusses the Kruchten 5+1 view model for describing architecture using multiple views. Additional topics covered include the OCTO matrix approach, example architecture diagrams for a sample application called RIA Organizer, and modern architectures like big data, microservices and serverless computing.
The document discusses software architecture and the Rational Unified Process (RUP). It provides definitions of key terms:
1) Software architecture is a structural plan that describes system elements, how they fit together, and how they work together to fulfill requirements. It guides implementation and sets expectations.
2) The RUP is an iterative process focusing on requirements and design. Each iteration captures requirements, performs analysis/design, implements, and tests to evolve the system. Risks are assessed and prioritized to guide iterations.
3) The RUP uses multiple "views" including use cases, components, and interactions to represent a system from different stakeholder perspectives.
This document provides an overview of software architecture design. It discusses the Attribute-Driven Design (ADD) method, which is a process for designing software architecture to meet quality and functional requirements. The ADD method involves recursively decomposing system elements and choosing architectural tactics to fulfill quality attribute needs. The document also provides examples of applying the ADD method to design architectures for a mobile robotics system and a keyword in context system.
The document provides an overview of the Capability Maturity Model Integration (CMMI) model for software development processes. It describes CMMI as a process improvement model that was developed by the Software Engineering Institute to help organizations improve their software development processes. The document focuses on the software design process as defined by CMMI. It outlines the goal of the software design process, which is to design the software and its components. It also describes some of the key practices and outputs of the software design process according to CMMI, such as establishing design criteria, identifying a design method, optimizing the design, and gathering design elements into a technical data package.
This document provides course notes on software architecture. It begins with an overview of the course and its modules. Module 1 covers UML architecture diagrams, including Kruchten's 4+1 View Model (logical, process, development, physical views and scenarios). It describes component diagrams, package diagrams, deployment diagrams, and activity diagrams. Module 2 will cover architectural styles like layered systems and pipes and filters. Module 3 discusses quality attributes, architecture analysis, trade-off analysis, and product lines.
This document provides course notes on software architecture. It begins with an overview of the course and its modules. Module 1 covers UML architecture diagrams, including Kruchten's 4+1 View Model (logical, process, development, physical views and scenarios). It describes component diagrams, package diagrams, deployment diagrams, and activity diagrams. Module 2 will cover architectural styles like layered systems and pipes and filters. Module 3 discusses quality attributes, architecture analysis, trade-off analysis, and product lines.
This document provides course notes on software architecture. It begins with an overview of the course and its modules. Module 1 covers UML architecture diagrams, including Kruchten's 4+1 View Model (logical, process, development, physical views and scenarios). It describes component diagrams, package diagrams, deployment diagrams, and activity diagrams. Module 2 will cover architectural styles like layered systems and pipes and filters. Module 3 discusses quality attributes, architecture analysis, trade-off analysis, and product lines.
Software Development Plan of Fixed Asset Management SystemNasiruddin Juel
The document outlines a software development plan for Ain o Salish Kendra (ASK) using a waterfall development approach. It describes the six stages of the waterfall model - planning, requirements definition, design, development, integration and testing, and installation and acceptance. Each stage has predefined processes and deliverables. The goal is to build the software in a structured, top-down manner to result in a quality product that meets requirements.
This document provides an architectural analysis of the CraneFoot pedigree visualization software. It presents various views of the CraneFoot architecture, including a conceptual view describing the core functionality and components at a high level, a structural view depicting the static structure and dependencies of subsystems and components, and a behavioral view outlining the general workflow. The analysis was conducted through a process of acquiring domain knowledge, understanding the tool's inputs and outputs, and extracting views from the source code. The views are intended to document the architecture and support understanding, evaluation, and potential changes to CraneFoot.
This document provides an introduction to software architecture. It discusses what software architecture is, popular architecture styles, quality attributes of a system, and architecture design guidelines. The key points are:
- Software architecture is the high-level design of a system that guides its construction and development. It defines the relationship between major structural elements.
- Popular architecture styles include layered, pipes and filters, and event-based. Each style has advantages and disadvantages for certain quality attributes.
- Quality attributes include implementation attributes like maintainability, runtime attributes like performance and availability, and business attributes like time to market. There are often tradeoffs between attributes.
- Architecture design guidelines include thinking about requirements before design, using abstraction, considering non-
This document discusses software design principles and concepts. It begins by defining software design as translating requirements into a blueprint for constructing software. Key concepts discussed include:
1. Managing complexity through principles like uniformity, accommodating change, and minimizing coupling between modules.
2. Software architecture, which defines the overall structure and interactions between major system elements.
3. Common design techniques like abstraction, modularity, hierarchy, and separation of concerns that help manage complexity.
The DSS presented in this document is a tool that improves the effectiveness of the decision making process that results in estimating, planning, and adapting: the products (software architecture, design specifications and code ), the activities (designing architecture, defining design specifications, and producing code) , and the measures of goodness (number of known requirements met, degree of resilience to new requirements, and degree of reusability) of the design and implementation phases of a Software Development Life Cycle.
1. The document describes an automatic graphical design generator system that takes a program file as input and generates a graphical design of the program without requiring the user to have knowledge of the program.
2. It aims to reduce the time and effort required to manually create graphical designs by dragging and dropping symbols. The proposed system can generate designs for programs written in languages like Java as long as the program is logically and syntactically correct.
3. Graphical designs provide an easy way to understand complex programs for students and software testers. The automatic generation of designs from code can also assist with reverse engineering programs where the code is available but a design is needed.
This document provides an overview of software engineering and a generic process model. It discusses that software should be engineered to meet 21st century challenges. A software engineering process involves communication, planning, modeling, construction, and deployment activities applied iteratively. It also involves umbrella activities like tracking, reviews, and configuration management. Finally, it presents a schematic of a generic process model showing the relationship between framework activities, actions, and tasks.
The document discusses the design phase of the system development life cycle. It describes the objectives and steps of the design phase, which include presenting design alternatives, converting logical models to physical models, designing the system architecture, making hardware and software selections, and designing inputs, outputs, data storage, and programs. Common design strategies like custom development, packaged systems, and outsourcing are also covered. The document then explains various system design methods and the stages of system design, including logical, physical, and program design. Finally, it discusses avoiding common design mistakes.
The document discusses key concepts in software design including abstraction, architecture, patterns, modularity, coupling and cohesion, and information hiding. It defines software design as transforming user requirements into an implementable form using programming languages. The software design process exists between requirements and programming and yields architectural, high-level, and detailed designs. It also outlines characteristics of good design like correctness, efficiency, and understandability.
Stepwise Project planning in software developmentProf Ansari
The following activities are:
Identify objectives and practical measures of the effectiveness in meeting those objectives.
Establish a project authority
Stakeholder analysis – identify all stakeholders in the project and their interests
Modify objectives in the light of stakeholder’s analysis
Establish methods of communication with all parties
2.4
The document discusses software architecture, including its definition, types of architectures, views, and documentation. It defines software architecture as the fundamental organization of a system, including its components, relationships, and design principles. The document outlines different types of architectures like business, technical, and enterprise architectures. It also discusses common architecture views used in frameworks like RUP, RM-ODP, and DODAF. Finally, it covers architecture documentation and modeling techniques.
This document provides an overview of the software design process. It discusses that design is where creativity and technical considerations come together to model a product or system. Software engineers conduct design tasks to create a design model that provides architectural and implementation details needed to build the system. The design model is important because it can be assessed before development to improve quality. The design process involves modeling the architecture, interfaces, and components. The primary work product is a design model representing these views. Throughout the iterative design process, quality is evaluated against requirements and guidelines.
Software Archtecture.
Software design is a process to transform user requirements into some suitable form, which helps the programmer in software coding and implementation.
Software design is the important step in SDLC (Software Design Life Cycle), which moves the concentration from problem domain to solution domain. It tries to specify how to fulfill the requirements mentioned in SRS.
Software design plays an important role in developing software: during software design, software engineers produce various models that form a kind of blueprint of the solution to be implemented
Similar to Oop final project documentation jose pagan v2.1 (20)
Predictably Improve Your B2B Tech Company's Performance by Leveraging DataKiwi Creative
Harness the power of AI-backed reports, benchmarking and data analysis to predict trends and detect anomalies in your marketing efforts.
Peter Caputa, CEO at Databox, reveals how you can discover the strategies and tools to increase your growth rate (and margins!).
From metrics to track to data habits to pick up, enhance your reporting for powerful insights to improve your B2B tech company's marketing.
- - -
This is the webinar recording from the June 2024 HubSpot User Group (HUG) for B2B Technology USA.
Watch the video recording at https://youtu.be/5vjwGfPN9lw
Sign up for future HUG events at https://events.hubspot.com/b2b-technology-usa/
The Ipsos - AI - Monitor 2024 Report.pdfSocial Samosa
According to Ipsos AI Monitor's 2024 report, 65% Indians said that products and services using AI have profoundly changed their daily life in the past 3-5 years.
Codeless Generative AI Pipelines
(GenAI with Milvus)
https://ml.dssconf.pl/user.html#!/lecture/DSSML24-041a/rate
Discover the potential of real-time streaming in the context of GenAI as we delve into the intricacies of Apache NiFi and its capabilities. Learn how this tool can significantly simplify the data engineering workflow for GenAI applications, allowing you to focus on the creative aspects rather than the technical complexities. I will guide you through practical examples and use cases, showing the impact of automation on prompt building. From data ingestion to transformation and delivery, witness how Apache NiFi streamlines the entire pipeline, ensuring a smooth and hassle-free experience.
Timothy Spann
https://www.youtube.com/@FLaNK-Stack
https://medium.com/@tspann
https://www.datainmotion.dev/
milvus, unstructured data, vector database, zilliz, cloud, vectors, python, deep learning, generative ai, genai, nifi, kafka, flink, streaming, iot, edge
ViewShift: Hassle-free Dynamic Policy Enforcement for Every Data LakeWalaa Eldin Moustafa
Dynamic policy enforcement is becoming an increasingly important topic in today’s world where data privacy and compliance is a top priority for companies, individuals, and regulators alike. In these slides, we discuss how LinkedIn implements a powerful dynamic policy enforcement engine, called ViewShift, and integrates it within its data lake. We show the query engine architecture and how catalog implementations can automatically route table resolutions to compliance-enforcing SQL views. Such views have a set of very interesting properties: (1) They are auto-generated from declarative data annotations. (2) They respect user-level consent and preferences (3) They are context-aware, encoding a different set of transformations for different use cases (4) They are portable; while the SQL logic is only implemented in one SQL dialect, it is accessible in all engines.
#SQL #Views #Privacy #Compliance #DataLake
STATATHON: Unleashing the Power of Statistics in a 48-Hour Knowledge Extravag...sameer shah
"Join us for STATATHON, a dynamic 2-day event dedicated to exploring statistical knowledge and its real-world applications. From theory to practice, participants engage in intensive learning sessions, workshops, and challenges, fostering a deeper understanding of statistical methodologies and their significance in various fields."
End-to-end pipeline agility - Berlin Buzzwords 2024Lars Albertsson
We describe how we achieve high change agility in data engineering by eliminating the fear of breaking downstream data pipelines through end-to-end pipeline testing, and by using schema metaprogramming to safely eliminate boilerplate involved in changes that affect whole pipelines.
A quick poll on agility in changing pipelines from end to end indicated a huge span in capabilities. For the question "How long time does it take for all downstream pipelines to be adapted to an upstream change," the median response was 6 months, but some respondents could do it in less than a day. When quantitative data engineering differences between the best and worst are measured, the span is often 100x-1000x, sometimes even more.
A long time ago, we suffered at Spotify from fear of changing pipelines due to not knowing what the impact might be downstream. We made plans for a technical solution to test pipelines end-to-end to mitigate that fear, but the effort failed for cultural reasons. We eventually solved this challenge, but in a different context. In this presentation we will describe how we test full pipelines effectively by manipulating workflow orchestration, which enables us to make changes in pipelines without fear of breaking downstream.
Making schema changes that affect many jobs also involves a lot of toil and boilerplate. Using schema-on-read mitigates some of it, but has drawbacks since it makes it more difficult to detect errors early. We will describe how we have rejected this tradeoff by applying schema metaprogramming, eliminating boilerplate but keeping the protection of static typing, thereby further improving agility to quickly modify data pipelines without fear.
End-to-end pipeline agility - Berlin Buzzwords 2024
Oop final project documentation jose pagan v2.1
1. MVP Development Corporation
Event Driven Process Manager
Software Architecture Document
Pre-Design Project Proposal and Work Plan
Project Requirements / Documentation
Design Documentation
Installation Instructions
Version 2.1
2. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 2 of 24
Revision History
Date Version Description Author
September 28, 2009 1.0 Initial Design Version José Pagán
November 2, 2009 2.0 First Implementation
Additional classes were added, see revised
Class Diagram in Section 5.1.
Additional Documents were included in the
following Appendices:
I. Pre-Design Project Proposal and
Work Plan
II. Project Requirements / Documentation
III. Design Documentation
IV. Installation Instructions
Jose Pagán
January 28, 2017 2.1 Proofreading José Pagán
3. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 3 of 24
Table of Contents
1. Introduction 4
1.1 Purpose 4
1.2 Software Description 4
1.3 Tools for Analysis 4
1.4 Scope 4
1.5 Definitions, Acronyms, and Abbreviations 5
1.6 References 5
1.7 Overview 5
2. Architectural Representation 5
3. Architectural Goals and Constraints 7
4. Use-Case View 7
4.1 Use-Case Realizations 7
5. Logical View 9
5.1 Overview 9
6. Process View 12
7. Deployment View 13
8. Implementation View 13
8.1 Overview 13
8.2 Layers 13
9. Size and Performance 14
10. Quality 14
Appendix I – Pre-Design Project Proposal and Work Plan 15
Software Description 15
Tools for Analysis 15
Work Plan 16
Appendix II – Project Design and Documentation 17
Business Rules 17
List of Events 18
Appendix III – Design Documentation 20
Appendix IV – Installation Instructions 23
4. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 4 of 24
Software Architecture Document
1. Introduction
1.1 Purpose
The purpose of this Software Architecture Document is to describe, through the use of diagrams and
descriptions, the architecture of the Event Driven Process Manager application. The document provides a
comprehensive architectural overview of the system, and conveys the significant architectural decisions
which have been made in the development of Event Driven Process Manager. A Pre-design Project
Proposal and Work Plan, Project Requirements / Documentation, Design Documentation, and Installation
Instructions have been included in the Appendices.
This document depicts different aspects of Event Driven Process Manager using a number of different
architectural views based on Philippe Kruchten’s “4+1” View Model of Software Architecture. Each one
of these views is intended for a different audience. For example, the logical view is used by software
architects for functional analysis, while the use case view provides users with a quick understanding of the
functionality of the software.
This document is intended to give architects, developers, software engineers, project managers,
programmers and power users a thorough understanding of the Event Driven Process Manager architecture
to assist in the analysis, reverse engineering and maintenance of the application.
1.2 Software Description
Event Driven Process Manager is a Console based (Win32) single user software application that allows the
user to manage various tasks performed by employees and other participants in an event driven process.
The application processes different types of events, creates an event log, validates that each event complies
with the rules and parameters provided in an Event Category List, and assigns an agent from an Agent List
to each event, if one is available. If the event does not comply with the rules or parameters specified in the
Event Category List, or there is no agent available to handle the event within the required constraints, the
application generates an exception report. The application also generates a Job Status Report once all the
events have been processed.
Event Driven Process Manager is a free open source application written in C Sharp. The program will
process events from an input file or through manual entry. Reports may be sent to the console or to a
printer. The initial release is limited to reading from a file and output to the console.
1.3 Tools for Analysis
MVP Development Corporation used Microsoft Visual Studio 2008, Microsoft SQL 2008 and Microsoft
Visio to create the application and generate diverse diagrams, including some UML diagrams.
1.4 Scope
This Software Architecture Document applies to the Event Driven Process Manager system, including all
its components and connections. The architecture, forms, functions, files, tools, packages and
configuration of the system are all affected by this document.
5. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 5 of 24
1.5 Definitions, Acronyms, and Abbreviations
Architecture - The way the components of a computer or computer system are organized and integrated.
Architectural Style – idiomatic patterns of system organization, organizational principles and structures for
certain classes of software.
Components - a reusable black/grey-box entity (a piece of code) with well-defined interface and specified
behavior which is intended to be combined with other components to form a software system (an
application).
Connectors – abstractions that allow for a clear separation of the application’s business logic from the
communication middleware.
UML – The Unified Modeling Language (UML) is an open standard method used to specify, visualize,
construct and document the artifacts of an object-oriented software-intensive system.
1.6 References
Christine Hofmeister, Robert Nord and Dilip Soni, Applied Software Architecture, Addison-Wesley
Professional (November 14, 1999).
M. Shaw, D. Garlan (1996). Software Architecture: Perspectives on an Emerging Discipline. Upper Saddle
River, NJ: Prentice Hall.
Kruchten, P., Architectural Blueprints—The “4+1” View Model of Software Architecture, IEEE Software
12(6), November 1995
First ECG Software Services, Applying 4+1 View Architecture with UML 2, 2007
Dusan Balek, Connectors in Software Architectures, Charles University 2002
1.7 Overview
The rest of this Software Architecture Document contains a description of the architectural representations
used (Section 2), the architectural goals and constraints of the system (Section 3), the architectural views of
the system (Sections 4 to 9), size and performance issues (Section 10), and quality issues (Section 11). The
appendices contain a Pre-design Project Proposal and Work Plan, Project Requirements / Documentation,
Design Documentation, and Installation Instructions for the application.
2. Architectural Representation
The system's architecture will be described using Kruchten's 4+1 View Model shown in Figure 1 below.
6. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 6 of 24
Figure 1 - 4+1 View Model
The model consists of 5 views used to represent different layers of the system's architecture. These views are:
i. Logical View (Object Oriented Decomposition) - This view focuses on realizing an application’s
functionality in terms of structural elements, key abstractions and mechanisms, separation of concerns
and distribution of responsibilities. Architects use this view for functional analysis.
ii. Process View (Process Decomposition) - This view considers non-functional aspects such as
performance, scalability and throughput, and addresses the issues of concurrency, distribution and fault
tolerance. It shows the main abstractions from the Logical View executing over a thread as an
operation
iii. Implementation or Development View (Subsystem Decomposition) - This is a view of a system’s
architecture that encompasses the components used to assemble and release a physical system. This
view focuses on configuration management and actual software module organization in the
development environment.
iv. Deployment or Physical View (Mapping Software to Hardware) - This view encompasses the nodes
that form the system’s hardware topology on which the system executes; it focuses on distribution,
communication and provisioning. This view accommodates the non-functional requirements such as
availability, reliability, performance, throughput and scalability, and provides all possible hardware
configurations, and maps the components from the Implementation View to these configurations.
v. Use Case View or Scenarios (putting all together) - In addition to the four views discussed above, this
is the central view for capturing scenarios. The Use Case View encompasses the use cases that
describe the behavior of the system as seen by its end users and other stakeholders. Although
traditionally discussed as the last view, this is the first view created in the system development
lifecycle.
7. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 7 of 24
3. Architectural Goals and Constraints
The objectives of Event Driven Process Manager that have a significant impact on the architecture include:
Safety, Security and Privacy – the application provides for login and password verification.
Future enhancements may include encryption.
Off-the-shelf product – Event Driven Process Manager is a standalone, self-contained application.
Future enhancements will include an installer and an internet connection to search for and install
updates.
Portability, Distribution and Reuse – Event Driven Process Manager is an open source application.
The source code may be easily ported to other platforms or reused in a new application.
Special Constraints – the software must be user friendly and easy to use. It must have a self-
contained help facility that serves as a user manual.
Design and Implementation Strategy – The system is written in C# using Visual Studio 2010 for
Windows and uses a Microsoft SQL 2008 database.
4. Use-Case View
This section illustrates the Use-Case view applied to Event Driven Process Manager.
4.1 Use-Case Realizations
The following Use-Case Realizations illustrate the basic functionality of Event Driven Process Manager
from the user’s point of view.
8. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 8 of 24
Use Case View
Actor1
«uses»
«uses»
«uses»
«uses»
«uses»
«uses»
«uses»
Process Event File
Print Job Status
Report
Load Event
Categories File
Load Agent List
File
Process Event
(Manual Input)
Add Event
Category
(Manual Input)
Delete Agent
(Manual Input)
Add Agent
(Manual Input)
«uses»
Figure 2 - Use-Case Descriptions
Process Event File: The user may add and processes events from a file and generate an Event
Processing Report and an Exceptions Report.
Print Job Status Report: The user may print a status report for each job being worked on, including
a list of events associated with each job, the agent assigned and its corresponding status.
Load Event Categories File: The user may add event categories to the Event Categories list from a
file.
Load Agent List File: The user may add agents to the Agent List from a file.
9. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 9 of 24
Features for future development include:
Add Event Category: The user may add event categories to the Event Category List manually
(through the keyboard).
Add Agent: The user may add agents to the Agent List manually (through the keyboard).
Delete Agent: The user may delete agents from the Agent List.
5. Logical View
This section describes the architecturally significant parts of the design model, such as its decomposition
into subsystems and packages. Each significant package is decomposed into classes and class utilities. The
architecturally significant elements and responsibilities are described, as well as important relationships,
operations, and attributes.
5.1 Overview
Software Architecture may be defined based on the implementation of the Perry and Wolfe Equation as:
Software architecture = {Elements, Forms, Rationale/Constraints}
The application was built using the JP.Framework. The main classes of the JP.Framework used in the
application are shown below:
10. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 10 of 24
The JP.Data Class Library also references the Koko.Data.dll in the Koko.Framework. The JP.Data
DataSource.getDataReader method uses the dataSourceCollection and dataProvider classes in the
Koko.Data.dll to connect to the database. The dataProvider executes SQL stored procedures to access
tables in the database.
11. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 11 of 24
Figure 3 below shows a class diagram with the most significant elements of Event Driven Process
Manager.
Figure 3 - Logical View of Event Driven Process Manager in Terms of Classes
The system architecture is organized around the EventCategory Class, a class that contains the variables,
criteria and constraints for events. Additional application classes were created to initialize and load data
into the application, validate events, assign agents, and report exceptions. The application uses lists of the
EventCategory, Job, Agent, Service and Customer classes.
The IEntity class in JP.Data.DataObjects is an interface to force print and loadFields methods on all derived
classes. Separate classes have been created for Login, Error Handling, and Output.
A #define Verbosity directive was used to adjust the trace and error console messaging during operation.
Customer Job Event
CustomerId JobId EventId
CustomerName JobEventList EventDateTime
CustomerAddress JobCustomerId EventCategoryId
CustomerTelephone JobServiceId EventAgentId
CustomerServiceTypeId JobAmountPaid EventJobId
EventCategoryConstraintText
EventCategoryConstraintStatus
EventCategoryConstraintAmount
Service Event Category
ServiceId EventCategoryId Agent
ServiceName EventCategoryProcess AgentId
ServiceDescription EventCategoryName AgentName
ServiceCost EventCategoryDescription AgentAvailableDate
EventCategoryPreviousEvent
EventCategoryNextEvent
EventCategoryDuration
EventCategoryAgentList Constraint
EventCategoryConstraintList ConstraintId
ConstraintCategoryId
ConstraintCategory ConstraintParameter1
ConstraintCategoryId ConstraintParameter2
ConstraintDescription
12. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 12 of 24
6. Process View
The following diagram illustrates the system's decomposition into processes.
Event Input
File
Event
Log List
Event.Get
Event
Categ.
List
Event.Validate
Pass
Fail
Agent
List
Event.
Reportexeption
Event.
AssignAgent
Fail
Job
List
Event.Register
Pass
Output
Interface
Console
Event.
Reportevent
Manual Input
Report
Event
Category List
File
Agent List File
Print Jobs Status
Report
Input
Interface
13. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 13 of 24
7. Deployment View
This program is run on a single PC running under Windows. It requires connection to a Microsoft SQL
2008 database.
8. Implementation View
This section describes the decomposition of the software into layers and subsystems in the implementation
model, and any architecturally significant components.
8.1 Overview
The most significant layers used are Application Management, Security Management, Error Handling, Data
Management and User Interface.
8.2 Layers
The most important classes used in each layer are described below.
Application
Management
A Session class was created to manage the application including various static
methods such as sessionRun, sessionIinitializeLoadData and
sessionProcessEvents. The sessionRun method calls the Login.loginValidate
and Help.helpPrint methods.
Security Management A Login class was created to provide security using the loginValidate method.
The User must login with a valid user name and password before processing.
Error Handling A separate ErrorHandling class was created with the errorHandlingPrintMethod
to handle all try catch exceptions.
Data Management An interface called IEntity was developed to force uniformity among derived
classes such as Agent, Customer, Event, EventCategory and Service. These
concrete entities override the print() and loadFields() methods but must follow
the structure of the virtual class. The loadFields method uses a GetDataReader
class to access the Database.
All DataObjects contain a loadFields method to populate the class by reading
the database. A class called getDataReader is used to pass a DataReader to the
DataObjects. getDataReader uses the dataSourceCollection and dataProvider
classes form the Koko.Framework. The dataProvider executes SQL stored
procedures to access the tables in the database.
All DataObjects contain a print method to print its contents. All print contents
are directed to the Output User Interface to be sent to the console using the
Output.outputPrintLine method.
List classes and List of List classes are used extensively.
All data from the EventDB Database is loaded to the DataObjects at the
beginning of the program using the sessionInitializeLoadData method. These
DataObjects remain open throughout the session to maximize performance.
UI (Presentation Layer) All output is handled by the Output class with the outputPrintLine method.
14. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 14 of 24
9. Size and Performance
The application maintains the entire database in list classes in memory to maximize performance. Large
amounts of memory may be needed for large applications.
10. Quality
The application was developed using a framework and object oriented programming techniques to facilitate
maintenance. Data objects were standardized using the IEntity interface and method overloading was used
to adjust the print and loadFields methods for each class. Encapsulation, inheritance and overloading
techniques were used to maximize code reuse and minimize code generation.
Input and output transition classes were provided to facilitate connecting to different input and output
devices without modifying the application code. The #define directive was implemented to control
Verbosity. Separate class libraries were used for Security, Data, User Interface and Diagnostics, to
facilitate maintenance and future reuse.
The JP.Framework references the Koko.Framework directly, allowing future upgrades to the
Koko.Framework to be incorporated into the JP.Framework.
.
15. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 15 of 24
Appendix I – Pre-Design Project Proposal and Work Plan
This Pre-Design Project Proposal and Work Plan provide a description of the application and tools used in
this project, and an updated Work Plan. For more details about the assumptions made, please refer to the
Software Architecture Document above.
Software Description
Event Driven Process Manager is a Console based (Win32) single user software application that allows the
user to manage various tasks performed by employees and other participants in an event driven process.
The application processes different types of events, creates an event log, validates that each event complies
with the rules and parameters provided in an Event Category List, and assigns an agent from an Agent List
to each event, if one is available. If the event does not comply with the rules or parameters specified in the
Event Category List, or there is no agent available to handle the event within the required constraints, the
application generates an exception report. The application also generates a Job Status Report once all the
events have been processed.
Event Driven Process Manager is a free open source application written in C Sharp. The program will
process events from an input file or through manual entry. Reports may be sent to the console or to a
printer. The initial release is limited to reading from a file and output to the console.
Tools for Analysis
MVP Development Corporation used Microsoft Visual Studio 2008, Microsoft SQL 2008 and Microsoft
Visio to create the application and generate diverse diagrams, including some UML diagrams.
16. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 16 of 24
Work Plan
Feature Week Priority Status
1 Pre-Design Project Proposal 1 1 Done
2 Work Plan 2 1 Done
3 Project Requirements and Documentation 3 2 Done
4 Design Documentation/Framework Guidelines 4 3 Done
5 Framework Infrastructure 5 4 Done
6 Sample Database 6 5 Done
7 Application Design - Basic Functionality for Flow Control
Application Management 8 6 Done
Security Management 9 8 Done
Error Handling 9 8 Done
Data Management 7 6 Done
UI (Presentation Layer) 9 8 Done
8 Additional Event Validation Features
Validation of Agent Availability 11 9 Pending
Validation of Time, Status and Amount Constraints 12 9 Pending
Manual Data Entry and Output to Printer 12 9 Pending
9 Testing 10 9 Done
10 Finalize Design Documentation 10 9 Done
17. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 17 of 24
Appendix II – Project Design and Documentation
Business Rules
Issue Description
Process Flow Processes and related events must be keep in order, since quite
a few of them require that previous events be completed before
they start or are possible.
Process/Event Constraints Each process and/or event may have none, one or many
constraints typically of the following form:
Date – Time Constraint – the total number of days and/or
hours that the event has before it is considered expired and
not valid anymore. Or it can be used as a date-time to set an
alarm or time to trigger another event that requires some
action.
Amount Constraint – this is a floating-point value that may be
used to set the full amount of something that must be part of
the event.
Text Constraint – a string text value that could be used and/or
compared to set the valid and expected value.
Status Constraint – given a list of possible status values, each
with a specific meaning, including: accepted, requires revision,
archived, dismissed, rejected. The constraint will require
routing the process / event to another process or event.
Next Event When looking at any event, the following or next event must be
known at all times.
Individuals Identities The identity of each individual should be unique and be related
his event capabilities.
Individual Capabilities Each individual is associated with a level of capability that
clarifies the individual to participate in a given event.
Individual Roles A single individual could have various roles within the process /
event flow.
Services Offered Service Description Price
Service A Deluxe Service $10,000
Service B Cheap Service $20,000
Service C Intermediate Service $50,000
18. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 18 of 24
List of Events
Event Note
Process: Request
Request Registration The customer request is registered as soon as the customer fills
in a set of documents.
Request Pre-Review An agent reviews the submitted documentation and accepts,
requires revision to customer, or rejects the registration. If the
submission is rejected, the customer has 2 weeks to resubmit
from registration date.
Customer Payment Customer pays specific amounts based on the request type.
Only if the full amount is paid, the request will be sent to the
following processes and/or events. After customer receives the
pre-approval, the customer will pay a specific amount. He/she
has two months from the initial registration date to pay, else the
registration is canceled and the documentation must be submitted
in full again.
Final Pre-Review Again, agent reviews the submission and accepts or approves it
for further consideration. Upon consideration, the request is
queued for investigation. Note that after the request is queued,
the company has 15 days to start the “Investigation” process.
Process: Investigation
Investigation Notification Upon the de-queuing of a request for consideration by an Agent,
a notification notice must be sent to the requester to alert him/her
about the start of the “Investigation” process.
Inspection Request An agent schedules a Visit with the requester for inspection. The
customer has 30 days to setup the first inspection and get
inspected.
Inspection The agent inspects whatever needs inspection and collects all
needed information and/or photos for further evaluation.
Request Review Agent reviews the documentation submitted, the data collected
during the inspection, and the applicable rules for approval or
rejection, and prepares a document with the decision. The review
should be completed within 3 days after inspection.
Results Notification The customer is notified to personally review the results.
Results Review The Agent and the Customer review the results and agree
whether to proceed with the service. If an agreement is reached,
the service request is queued. The company has 15 days to call
the customer to schedule of the requested service.
19. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 19 of 24
Process: Service
Service Notification Upon the de-queuing of a request for service by an Agent, a
notification notice is required to be sent to the requester to alert
him/her about the start of the “Service” process.
Service Request An agent schedules a Visit with the requester for service. The
customer has 30 days to setup the first service.
Service The agent provides the service and collects all needed
information and/or photos for further approval.
End of Service Notification The collected service documentation is delivered to the customer
for his/her approval. This notification should be submitted to the
customer not later than 1 week after the service has been
completed.
20. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 20 of 24
Appendix III – Design Documentation
The project was designed and built using the JP.Framework, a framework derived from the
Koko.Framework developed by Dr. Eduardo Sobrino. This framework references the Data.dll from the
Koko.Framework and utilizes the dataSourceCollection and dataProvider classes of the Koko.Framework
to create its own dataReader class. The dataProvider executes SQL stored procedures to access the tables
in the database.
The JP.Framework application guidelines are customized for this project based on end user needs.
Application Guidelines
The following lists of guidelines are provided to framework users to ensure maintainability and
consistency in their projects:
Interfaces Use Interfaces to enforce a contract on their users that will specify what
properties and methods should be implemented along with their signature
(name, arguments and parameters). Always use an “I” (i) in front of the name
of the Interface to distinguish it from a class, for example “IDisposable”.
Enumerators When writing an enumerator always reserve the “0” (zero) value for the
“Unknown”. Expect users to use the “Unknown” value on those occasions that
the value is not provided or known at the time they are entering the data.
Destructors Implement a destructor when your class contains unmanaged resources or any
resource that consumes lots of space or holds another resource that is costly to
maintain. For example, on Database Connections.
When a using a class that implements the IDisposable pattern, always call the
Dispose method.
For classes that manage expensive resources, always instantiate them as late
as possible and dispose of them as early as possible.
Private Fields All private fields’ identifiers will begin with “m_” and will continue with the
Camel Notation, for example “m_MyInternalField”.
Methods Arguments All method arguments identifiers will begin with a lowercase word and will
continue with the Camel Notation.
Property Names All public property identifiers will be written using the Camel Notation.
A property should be created for each class field; no class field may be
accessed directly.
Public Fields All public field identifiers will be written using the Camel Notation. Global
variables will begin with “A” or “An” prefixes.
Assemblies All framework dll files are built in the JP.Framework/Assemblies/Debug folder.
21. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 21 of 24
A description of the most important helper classes used is also provided below.
Application
Management
A Session class was created to manage the application including various static
methods such as sessionRun, sessionIinitializeLoadData and
sessionProcessEvents. The sessionRun method calls the Login.loginValidate and
Help.helpPrint methods.
Security Management A Login class was created to provide security using the loginValidate method.
The User must login with a valid user name and password before processing.
Error Handling A separate ErrorHandling class was created with the errorHandlingPrintMethod
to handle all try catch exceptions.
Data Management An interface called IEntity was developed to force uniformity among derived
classes such as Agent, Customer, Event, EventCategory and Service. These
concrete entities override the print() and loadFields() methods but must follow
the structure of the virtual class. The loadFields method uses a GetDataReader
class to access the Database.
All DataObjects contain a loadFields method to populate the class by reading
the database. A class called getDataReader is used to pass a DataReader to the
DataObjects. getDataReader uses the dataSourceCollection and dataProvider
classes form the Koko.Framework. The dataProvider executes SQL stored
procedures to access the tables in the database.
All DataObjects contain a print method to print their contents. All print
content is directed to the Output User Interface and sent to the console using
the Output.outputPrintLine method.
List classes and List of List classes are used extensively.
All data from the EventDB Database is loaded to the DataObjects at the
beginning of the program using the sessionInitializeLoadData method. These
DataObjects remain open throughout the session to maximize performance.
UI (Presentation Layer) All output is handled by the Output class through the outputPrintLine method.
Security Management
User Authentication and Authorization
Provides select authentication authority.
o Operating System - Windows based authentication
o Database Management System
o Directory Services (LDAP)
Windows based authorization is being used to access the EventDB database.
22. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 22 of 24
Data Encryption
Encrypt / Decrypt
Hashing
Encryption will be done in future development.
Error Handling (Diagnostics)
Error Logging (to a File or System Log) – Validation errors are concatenated into a string and sent to
the output device after each event is processed.
Exception Handling strategy - provide specific classes to trap issues. All exception handling through
try/catch should always include the “General” exception to trap “System.Exception” instances.
Create the User Feedback strategy when an exception happens and is trapped by the Framework.
Data Management
While working with Databases, the following technologies are commonly used to work the needed
connectivity, request submission, error / exception management and results gathering:
ODBC Object Database Connectivity
OLEDB Object Linked and Embedded Database (Connectivity)
ADO Access Database Object
DAO Direct Data Object
JDBC Java Database Connectivity
CLI Class Library Interface
.Net Providers Manage providers available in .Net
Provide a Collection of DataSources that will store connection strings that will be targeted to a
provider and accessed in the application by a Key. This class should provide the necessary connection
string encryption without the developer having to be concerned with the security issue.
The Framework should provide a Data Layer that has a Class that resolves the connection to the
database once the Connection String is provided, ideally using a single method.
The JP.Framework uses the dataSourceCollection and dataProvider classes in the Koko.Framework.
23. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 23 of 24
Appendix IV – Installation Instructions
The application has been created in C# using a framework named JP.Framework. JP.Framework must be installed
in the same directory as the Koko.Framework as it references the Koko.Data.dll in its JP.Data Class Library.
The sample datatabase tables are included in an Excel Spreadsheet named Data Structures 7. To load the Database,
create a database in Microsoft SQL 2008 and load the tables using the Import and Export Data (32 bit) utility. The
connection string in the JP.Data.DataSource.getDataReader must be updated with the proper server and database
names. A stored procedure must be created for each table in the database using the following stored procedure
names:
Sample stored procedure script is provided below:
USE [EventDb]
GO
/****** Object: StoredProcedure [dbo].[Agent$_Select] Script Date: 11/01/2009
23:08:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[Agent$_Select]
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
select * from Agent$
END
24. MVP Development Corporation Version: 2.1
Software Architecture Document Date: 28/January/2017
EDPMAD
Confidential MVP Development Corporation
2017
Page 24 of 24
The level of verbosity in the application may be reduced by deleting the #define Verbosity directive at the beginning
of the Application Program.
Once the application is executed, it requests a user id and a password. Enter Sob for id and OpenK for password.
Next, the program will display a help screen. Press enter to execute. The program loads the database into lists of
Jobs, Event Categories, Customers and Agents. It then processes the events from the EventInputFile$ located in the
database. At the end of processing, enter Return to see the updated Job Report.