Tuesday, June 23, 2015

Input, Output, and User Interface Design

Input, Output, and User Interface Design


Input Design

Management and users make important decisions based on system outputs. These outputs are produced from data that is either input or retrieved from databases. And any data in the databases must have been first input.Today most inputs are designed by rapidly constructing prototypes. These prototypes may be simple computer-generated mock-ups, or they may be generated from prototype database structures such as those developed for Microsoft Access. These prototypes are rarely fully functional. They won't contain security features, data editing, or data updates that will be necessary in the final version of a system. Furthermore, in the interest of productivity, they may not include every button or control feature that would have to be included in a production system.

During requirements analysis, inputs were modeled as data flows that consist of data attributes. Even in the most thorough of requirements analysis, we will miss requirements. Input design may introduce new attributes or fields to the system. This is especially true if output design introduced new attributes to the outputs—the inputs must always be sufficient to produce the outputs. Inputs can be classified according to two characteristics: (1) how the data is initially captured, entered, and processed and (2) the method and technology used to capture and enter the data.


Output Design

Outputs are the most visible component of a working information system. they are often the basis for the users' and management's final assessment of the system's value. During requirements analysis, we defined logical output requirements. During decision analysis, we are considered different physical implementation alternatives.

Most outputs are designed by rapidly constructing prototypes. These prototypes may be simple computer-generated mock-ups with dummy data, or they may be generated from prototype databases such as Microsoft Access, which can be rapidly constructed and populated with test data. These prototypes are rarely fully functional. They won't contain security features or optimized data access that will be necessary in the final version of a system. Furthermore, in the interest of productivity, we may not include every button or control feature that would have to be included in a production system.

During requirements analysis, outputs were modeled as data flows that consist of data attributes. Even in the most thorough of requirements analysis, we will miss requirements. Output design may introduce new attributes or fields to the system.Outputs can be classified according to two characteristics: (1) their distribution and audience and (2) their implementation method.

One way to classify outputs is according to their distribution inside or outside the organization and the people who read and use them. Internal outputs are intended for the system owners and system users within an organization. They only rarely find their way outside the organization. Internal outputs support either day-to-day business operations or management monitoring and decision making.
The opposite of internal outputs is external outputs. External outputs leave the organization. They are intended for customers, suppliers, partners, and regulatory agencies. They usually conclude or report on business transactions. Examples of external outputs are invoices, account statements, paychecks, course schedules, airline tickets, boarding passes, travel itineraries, telephone bills, purchase orders, and mailing labels.


Interface Design

we integrate output and input design into an overall user interface that establishes the dialogue between users and computer. The dialogue determines everything, from starting the system or logging into the system, to setting options and preferences, to getting help. And the presentation of the outputs and inputs is also part of the interface. We need to examine the screen-to-screen transitions that can occur. In client/server applications (e.g. network-based Windows) and Web applications (e.g., Internet- or intranet-based browsers), the user has many alternative paths through menus, hyperlinks, dialogues, and the like. This makes for very accommodating and friendly user interfaces, but it greatly complicates design and programming.

Today most user interfaces are designed by rapidly constructing prototypes. These prototypes are generated using rapid application development environments such as Microsoft's Visual Studio. These prototypes are rarely fully functional, but they do contain enough functionality to demonstrate the interface. For example, a help system prototype may be functional to the extent that it calls up a few sample screens to demonstrate levels of assistance. Or a security system might have just enough functionality to demonstrate representative log-in errors even though it is not actually authenticating users. When we get to the construction phase of the life cycle, programmers and analysts will complete the functionality

User Interface Technology

Most of today's user interfaces are graphical. The basic structure of the graphical user interface (or GUI) is provided within either the computer operating system or the Internet browser of choice. In client/server information systems, the user interface client is implemented to execute within the PC operating system. In Internet and intranet information systems, the user interface is implemented to execute within the PC's Web browser.

Saturday, June 20, 2015

Feasibility, Design, and Architecture

Feasibility Discovery, Design, and Architecture


Feasibility

Feasibility is the measure of how beneficial or practical the development of an information system will be to an organization. Feasibility analysis is the process by which feasibility is measured.The scope and complexity of an apparently feasible project can change after the initial problems and opportunities are fully analyzed or after the system has been designed. Thus, a project that is feasible at one point may become infeasible later.

Figure below shows feasibility checkpoints during the systems analysis phases of our life cycle. The checkpoints are represented by red diamonds. The diamonds indicate that a feasibility reassessment and management review should be conducted at the end of the prior phase. A project may be cancelled or revised at any checkpoint, despite whatever resources have been spent.


The first feasibility analysis is conducted during the scope definition phase. At this early stage of the project, feasibility is rarely more than a measure of the urgency of the problem and the first-cut estimate of development costs. It answers the question, Do the problems (or opportunities) warrant the cost of a detailed study and analysis of the current system? Realistically, feasibility can't be accurately measured until the problems (and opportunities) and requirements are better understood.After estimating the benefits of solving the problems and opportunities, analysts estimate the costs of developing the expected system. Experienced analysts routinely increase these costs by 50 to 100 percent (or more) because experience tells them the problems are rarely well defined and user requirements are typically understated.
The next checkpoint occurs after a more detailed study and problem analysis of the current system. Because the problems are better understood, the analysts can make better estimates of development costs and of the benefits to be obtained from a new system. The minimum value of solving a problem is equal to the cost of that problem.
The next checkpoint of the current system is decision analysis.The decision analysis phase represents a major feasibility analysis activity since it charts one of many possible implementations as the target for systems design. Problems and requirements should be known by now. During the decision analysis phase, alternative solutions are defined in terms of their input/output methods, data storage methods, computer hardware and software requirements, processing methods, and people implications.

Six Tests for Feasibility

  • Operational feasibility is a measure of how well a solution meets the identified system requirements to solve the problems and take advantage of the opportunities envisioned for the system.
  • Cultural (or political) feasibility is a measure of how people feel about a solution and how well it will be accepted in a given organizational climate.
  • Technical feasibility is a measure of the practicality of a specific technical solution and the availability of technical resources and expertise to implement and maintain it.
  • Schedule feasibility is a measure of how reasonable the project timetable is.
  • Economic feasibility is a measure of the cost-effectiveness of a project or solution.
  • Legal feasibility is a measure of how well a solution can be implemented within existing legal and contractual obligations.


System Design

Once the analysis is complete and the requirements are captured, the question becomes one of how to best provide a solution. This leads to the build or buy question, which can be very complex. Some questions to ask when making this analysis should include the following:

  • Will the software (whether built or bought) meet the needs as defined in previous activities?
  • Can the software be fully integrated with existing systems?
  • Will the cost of the complete system (including hardware and software) be manageable from a budgeting perspective?
  • Will the software be able to provide specialized functions that may be strategic in nature?
  • Does the system meet existing system directives and strategies?
  • Will additional labor be needed for customization?
  • Are existing platforms workable with the new software?
  • Is the architecture stable?
  • Does the architecture risk immediate antiquation?
  • Are support resources available for the anticipated demand?
By answering these questions, system architects are more likely to uncover system incompatibilities before they occur, in addition to helping make the build or buy decision.


Architecture

A system architecture specifies the technologies to be used to implement one or more information systems. It serves as an outline for detailed design, construction, and implementation. The highest level plan for solving systems problems is the system architecture.The system architecture is composed of all the systems and subsystems that make up the entire information system of the organization. This includes databases, application logic, and decision support systems.
To develop this high-level plan, several steps are required.

  • Distinguish between operational and decision-support applications
  • Decompose large systems into layers and partitions. This simply means to look for subsystems and separate them from the overall system logically
  • Separate application logic from user interfaces
  • Treat abstractions as real: This design principle means to move logic into data (to make the abstract real)
  • Maintain a balance between the roles of the database management system and programming languages
  • Consider the major interfaces to users and other systems

Friday, June 12, 2015

Data Flow Diagrams

Event Diagrams, System Data Flow Diagram and Physical ERD


Event Diagrams

A data flow diagram for a single event handler and the agents and data stores that provide inputs or receive outputs. An event diagram is a context diagram for a single event. It shows the inputs, outputs, and data store interactions for the event. By drawing an event diagram for each process, users do not become overwhelmed by the overall size of the system. They can examine each use case as its own context diagram.Before drawing any event diagrams, you may find it helpful to have a list of all the data stores available.The simplicity of event diagramming makes the technique a powerful communication tool between users and technical professionals.Here is an example of an Event diagram.

Most event diagrams contain a single process - the same process that was named to handle the event on the decomposition diagram. For each event, illustrate the following:

  • The inputs and their sources. Sources are depicted as external agents. The data structure for each input should be recorded in the repository.
  • The outputs and their destinations. Destinations are depicted as external agents. The data structure for each output should be recorded in the repository.
  • Any data stores from which records must be "read" should be added to the event diagram. Data flows should be added and named to reflect what data is read by the process.
  • Any data stores in which records must be created, deleted, or updated should be included in the event diagram. Data flows to the data stores should be named to reflect the nature of the update.


System Data Flow Diagrams

System data flow diagram illustrates how data is processed by a system in terms of inputs and outputs. As its name indicates its focus is on the flow of information, where data comes from, where it goes and how it gets stored.System data flow diagrams are easier to understand by technical and non-technical audiences. It can provide a high level system overview,complete with boundaries and connections to other systems and a detailed representation of system components.


Logical and Physical ERD

Entity relationship diagram (ERD) represents a detailed picture of the entities needed for a business. In forward engineering, ERD will be transformed into a relational database eventually. There are two types of ERD - Logical and Physical. They are used in different stages of development, and are inter-related.Logical ERD models information gathered from business requirements. Entities and relationships modeled in such ERD are defined around the business's need. The need of satisfying the database design is not considered yet.
Physical ERD represents the actual design of database. It deals with conversion from logical design into a schema level design that will be transformed into relational database.Logical ERD is treated as base, refinement occurs by defining primary keys, foreign keys and constraints. Sometimes, relationships need to be resolved by introducing additional tables, like a Linked table for a many to many relationship.

Monday, June 1, 2015

Data Modeling

Data Modeling


Data Modeling

Data modeling is the analysis of data objects that are used in a business or other context and the identification of the relationships among these data objects. Data modeling is a first step in doing object-oriented programming.Data modeling is the formalization and documentation of existing processes and events that occur during application software design and development. Data modeling techniques and tools capture and translate complex system designs into easily understood representations of the data flows and processes, creating a blueprint for construction and/or re-engineering. The data model in the analysis phase is called the context data model or logical entity relationship diagram (LERD).
Here is an example of context data diagram.