2. Learning application development 1¶
How to develop knowledge and expertise¶
learning¶
- declarative knowledge development stage:
- the what stage
- learn basic skills, rules, processes.
- comes from real life, lessons, schools, books, etc.
- procedural knowledge development stage:
- the how stage
- embed the what into a how.
Expert/Novice Differences in Problem Solving¶
- experts have an extensive internalized knowledge base, the quickly draw one workable solution within minutes. experts do:
- categorize problems.
- develop global mental models of the problem (they saw the whole picture, the entire project in their head all the time).
- use directed search (they know what to look for, they know what to do, they start from similar problems they faced).
- analyze deep structures.
- use goals and plans to determine the next step.
- perform skilled sequence of actions. eg. mental simulation, top-down expansion of the problem.
- novices are slow and unsure. novices:
- develop local mental models of the problem.
- work on the small bits rather than integrating bits into a whole.
- use undirected search in a trial-and-error fashion. eg. look into videos instead of the index of a book.
- analyze surface features.
- simulate design entities in isolation.
- fail to integrate chunked into a whole global problem solution.
- problem solving techniques they use: satisficing(select non optimal solution, just the one that satisfy the issue), convservatism (tend to use the minimum change when implementing a solution).
Chapter 3: Project management¶
- Joint activities of the software engineer and project manager include project planning and control, assigning staff to tasks, and selecting from among different alternatives for the application.
- project plan: map tasks, times, and their inter-relations.
- RFP: request for proposal.
- task dependency diagram: shows the sequence of dependent tasks.
- critical path: sequence of tasks that determines the project completion time (takes the most time).
- estimating time for a task:
time = ( optimistic time + 2* realTime + pessimistic time )/4
- liaison: a person who acts as a link between two or more groups (2 departments).
- sponsor = champion = the person who supports the project and pays for it.
- user: person who has experience with the problem domain and who will use the system.
- IS management: the manager of the project manager (information system manager).
- technical staff: the team members.
- operations: day-to-day small issues and needs. eg. developers lack access to the database.
- vendors: external companies that provide services to the project. eg. software vendors, hardware vendors.
Chapter 4: Data gathering for application development¶
data types¶
- Data differs on several important dimensions: time orientation, structure, completeness, ambiguity, semantics, and volume.
- time orientation: history data, current data, future data.
- structure: structured data (classified into groups), semi-structured data, unstructured data (raw data).
- completeness: is data represents all needed information?. transactional applications requires the most complete and accurate data. GDSS (group decision support systems) and DSS (decision support systems) require less complete data. EIS (Expert information systems) and AI applications require the least complete data.
- ambiguity ( close to semantic): is the meaning of data clear?.
- semantics: the definition of terms and policies or actions are unified between team member. eg. IS means information system, not information security.
- volume: the total number of things (transactions, processing, orders, etc) that the system must or can handle at a time intervale. eg. 100s of transactions per second, 1000s of orders per day, etc.
data collection techniques¶
- there are 7 techniques for data collection: interviews, group meetings, observation, temporary job assignment, questionnaires, review of internal and outside documents, and review of software.
- Triangulation: is receiving the sam information from different sources.
- meetings: interview between 3 or more people.
- Joint application development (lAD): special meeting where all the team meets constantly for a few days to identify the application requirements and design the application.
- observation: manual or automated monitoring of one or more person’s work. useful for users who can not describe their behavior or what they want in an interview or questionnaire.
- temporary job assignment: put yourself in the user’s shoes, and see how the system needs to work. eg. you want to develop an application for a restaurant, so you go and work their for a few days to see their needs. gives the developer extensive knowledge about the problem domain.
- Questionnaire: paper or computerized version of an interview, can be distributed for large number of people. advantages: anonymity, reliability of data (data is free from errors).
- document review: eg. company internal documents (budgets, reports, policies, etc) or external documents (government regulations, etc).
- software review: review any existing software (within the company or outside) that is related to the project.
- interviews and JAD meetings are the most common data collection techniques.
data collection and application type¶
- data types are: time, structure, completeness, ambiguity, semantics, and volume.
- the photo below describes the characteristics of the data collection collected by each collection techniques. eg. internal documents collection method gives data that is: represent the past and current history, unstructured, incomplete, with low-med ambiguity, with semantics vary depending on the documents that your hand on, and maybe give you an information about the volume of the data.
- application types are:
- TPS: transaction processing systems: operational applications of a company. eg. payroll, inventory, etc.
- query: concentrate on retrieving historical and current dta. eg. reports, dashboards.
- DSS: decision support systems: statistical analysis tools that allow development of information that aids the decision process.
- GDSS: group decision support systems: meeting facilitation tools for groups of people.
- EIS: executive information systems: allow executives to scan environment data and make decisions. future oriented.
- ES: expert systems: allow experts to make expert decisions. eg. medical diagnosis.
- in the image below we match every type of applications with the desired characteristics of data that best suite this type of applications. eg. TPS requires at least: current data, structured, complete, low ambiguity, fixed semantics, and any volume.
- The image below maps each method of data collection to the application type(s) that can work with it. eg. interviews can be used to collect data about any type of application. while questionnaires can be used for TPS, Query, and DSS. but not for GDSS, EIS, and ES.
professionalism and ethics¶
- professions: is a job that requires advanced training.
- organizations:
- Association of Computing Machinery (ACM)
- Data Processing Management Association (DPMA).
- Ethics is the branch of philosophy that studies moral judgment and reasoning.
- dilemma is any situation requiring a choice between two unpleasant alternatives.
- ethical dilemma is any situation in which a decision results in unpleasant consequences requiring moral reasoning.
- Ethical Project Behavior
- confidentiality.
- privacy.
- ownership: does the company allows personal use of its computer systems?. you can’t sell a program that you developed for the company to another company.
- politics: politics are out of the company time and resources. offices politics, on the other hand, are allowed.
- courtesy: be polite and respectful to your colleagues. you are required to raise concerns about problems you see will delay the project.
- personal manner and responsibility: everyone is responsible for all problems in the project.
- Henry Ford’s quote: “Never complain, never explain.”.Your job at work is to work, so just do it.
-
Conger, S. (2008). The New Software Engineering. The Global Text Project. ↩